''查询数据,并把数据转化成集合字典 PublicFunction QueryDatasToListDic(sql AsString) As Collection OnErrorGoTo er Dim lst AsNew Collection, dic As Dictionary Dim rs AsNew ADODB.Recordset: Set rs = mysqlCn.Execute(sql) ''读取数据 rs.MoveFirst DoWhileNot rs.EOF Set dic = New Dictionary Dim field As Variant ForEach field In rs.Fields dic.Add field.Name, field.Value Next field lst.Add dic rs.MoveNext Loop rs.Close Set QueryDatasToListDic = lst ExitFunction er: Debug.Print Err.Description Set QueryDatasToListDic = Nothing EndFunction
''查询数据,并把数据转成二维数组,数据包含表头 PublicFunction QueryDataToArrayInHeader(sql AsString) As Variant OnErrorGoTo er ''获取数据库数据 Dim rs AsNew ADODB.Recordset Set rs = mysqlCn.Execute(sql) ' 获取表头字段名 Dim arr() As Variant Dim i AsLong, j AsLong ReDim arr(0To rs.RecordCount + 1, 0To rs.Fields.Count) For j = 0To rs.Fields.Count - 1 arr(0, j) = rs.Fields(j).Name Next j ' 获取数据,转换成数组 rs.MoveFirst i = 1 DoWhileNot rs.EOF For j = 0To rs.Fields.Count - 1 arr(i, j) = rs.Fields(j).Value Next j rs.MoveNext i = i + 1 Loop rs.Close ' 返回数据 QueryDataToArrayInHeader = arr ExitFunction er: Debug.Print Err.Description QueryDataToArrayInHeader = Nothing EndFunction
''查询数据,并把数据转成二维数组 PublicFunction QueryDataToArray(sql AsString) As Variant OnErrorGoTo er ''获取数据库数据 Dim rs AsNew ADODB.Recordset Set rs = mysqlCn.Execute(sql) ' 获取数据,转成数组 Dim arr() As Variant Dim i AsLong, j AsLong ReDim arr(0To rs.RecordCount, 0To rs.Fields.Count) rs.MoveFirst i = 0 DoWhileNot rs.EOF For j = 0To rs.Fields.Count - 1 arr(i, j) = rs.Fields(j).Value Next j rs.MoveNext i = i + 1 Loop rs.Close ''返回数据 QueryDataToArray = arr ExitFunction er: Debug.Print Err.Description QueryDataToArray = Nothing EndFunction
''查询所有数据,并把数据写入指定单元格 PublicSub QueryAllDataToRange(sql AsString, rng As Range) OnErrorGoTo er ''获取数据库数据 Dim rs AsNew ADODB.Recordset Set rs = mysqlCn.Execute(sql) ''把数据写入单元格 rng.CopyFromRecordset rs rs.Close ExitSub er: MsgBox "数据查询失败!" & vbCrLf & "错误信息" & Err.Number & ":" & Err.Description EndSub