VS2008 Windows窗体应用程序中用ADO调用数据库的问题

VS2008 Windows窗体应用程序中用ADO调用数据库的问题,第1张

点击重试后跳转到dbgheapc文件中的_ASSERTE(_CrtIsValidHeapPointer(pUserData));

同时调用堆栈下面出现这样的提示

> kernel32dll!7c812afb()

1,在你的Excel文件中存储数据,并将其保存在系统中的某个位置,例如 "DB Dataxlsx"

2,使用微软Excel驱动将Excel文件作为ODBC源(命名为MyExcelDS),此处有单独另一篇文章介绍。

3,打开一个新的excel文件,你将从 "DB Dataxlsx "中获取数据。

4,打开VB编辑器

5,创建一个 "ADODBConnection "对象

6,打开连接并提供与步骤2中提供的相同的DSN名称(在本例中是 "MyExcelDS")。

7,编写获取数据的查询,提供 "DB Dataxlsx "中的表名作为范围。

8,执行查询并将结果存储在resultSet中。

9,从结果集中读取数据并显示在新创建的Excel中,关闭结果集。

10,可以将此VBA函数指定一个按键,方便执行。

Excel中的数据输入如下:

然后我们打开一个Excel文件,Alt+F11呼出VBE编辑器,Insert一个module,然后输入下面代码

Sub ReadDB()

Dim mainWorkBook As Workbook

Dim intRowCounter

Set mainWorkBook = ActiveWorkbook

intRowCounter = 2

mainWorkBookSheets("Sheet2")Range("A2:Z100")Clear

Set Connection = CreateObject("ADODBConnection")

ConnectionOpen "DSN=MyExcelDS"

strQuery = "SELECT FROM [Sheet1$A1:Z500] where Dept = ‘IT’"

Set resultSet = ConnectionExecute(strQuery)

Do While Not resultSetEOF

mainWorkBookSheets("Sheet2")Range("A" & intRowCounter)Value = resultSetFields("Emp Id")Value

mainWorkBookSheets("Sheet2")Range("B" & intRowCounter)Value = resultSetFields("Name")Value

mainWorkBookSheets("Sheet2")Range("C" & intRowCounter)Value = resultSetFields("Age")Value

mainWorkBookSheets("Sheet2")Range("D" & intRowCounter)Value = resultSetFields("Dept")Value

intRowCounter = intRowCounter + 1

resultSetmovenext

Loop

resultSetClose

End Sub

用这些代码,用来使用VBA创建一个ADO数据库连接,访问我们使用Excel文件定义的ODBC数据源。

SQL执行了,但是你没要求它反馈信息所以什么都没有发生。

添加以下代码就可以看出效果了

Private Sub cmdOpen_Click()

Dim rs As ADODBRecordset

Set rs = New ADODBRecordset

Dim sql As String

sql = "select from 表1"

rsOpen sql, CurrentProjectConnection, adOpenDynamic, adLockOptimistic

'---------------------------添加代码反馈信息---------------------------

If rsRecordCount > 0 Then

MsgBox "表1中有数据"

Else

MsgBox "表1中没有数据"

End If

'---------------------------添加代码反馈信息---------------------------

rsClose

End Sub

以上就是关于VS2008 Windows窗体应用程序中用ADO调用数据库的问题全部的内容,包括:VS2008 Windows窗体应用程序中用ADO调用数据库的问题、vba用ado读取excelnull问题、新手请教ADO调用执行ACCESS数据库的问题。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10095127.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存