在vba中怎样判断是否从数据库中查出记录

在vba中怎样判断是否从数据库中查出记录,第1张

1.在对数据表记录进行 *** 作时,有一个记录指针,指向当前的记录。

图1中假设rs返回若干条记录,通常正确执行rsOpen后,记录指针指向首记录。此时,rs的Bof属性和Eof属性都为False。

可以使用rs的MovNext方法把记录指针向记录集的前(上)部移动,也可以使用rs的MovePrevious方法把记录指针向记录集的后(下)部移动。在记录指针的移动过程中,只要记录指针指向一条存在的记录,rs的Bof属性和Eof属性都将保持为False。

2.当记录指针向前(上)部移动到数据表外时,rs的Bof属性变成True,而Eof属性仍然是False,见图2;

而当记录指针向后(下)部移动到数据表外时,rs的Bof属性仍然是False,而Eof属性变成True,见图3。

3.当rs返回的记录为零时,rs的Bof属性和Eof属性都为True。见图4。

详细请见下面。

1、首先为导入文件设置一个按钮:(更新数据)

2、为“更新数据”按钮添加执行代码:

Private Sub Command87_Click()

If MsgBox("请准备好导入的文件!", vbOKCancel, "打印确认") = 1 Then

Dim xdlj As String 'xdlj:相对路径

Dim dklj As String 'dklj:打开路径

dklj = od()

If Not (dklj = "") Then

xdlj = "SELECT 字段名称1,字段名称2,字段名称3," _

& " INTO  ACCESS中表名称 FROM [Excel 80;Database=" & dklj & "][Plan$] WHERE 对EXCEL的筛选条件(可以省略);"   '这句是最关键的

DoCmdSetWarnings False   '关闭提示警告窗口

DoCmdRunSQL xdlj '运行SQL

MsgBox "您于" & Now() & "更新数据成功!", vbInformation '人性化提示

End If

End If

End Sub

注意  OD()  意思是open dialogue  我自己定义的函数,为了打开选择文件的会话框:

代码如下:

Public Function od() 'Opendialog

Dim f As FileDialog

Set f = ApplicationFileDialog(msoFileDialogFilePicker)

'fShow

If fShow = True Then

fFiltersClear

fFiltersAdd "Excel文件", "xls"

od = fSelectedItems(1)

Else

MsgBox "您中途选择了取消!"

End If

End Function

4、最终效果:

excel中:

ACCESS中:

给个简单的例子

Public Function SQLTest()

Dim strSQL As String

Dim strMyString As String

strMyString = "jason"

strSQL = "SELECT FROM tblMain " & _

"WHERE [TextField] = strMyString"

DebugPrint strSQL

CurrentDbOpenRecordset strSQL

End Function

Private Function query(ByVal nam As String, ByVal path As String)

Dim con As Variant, rst As Variant

Dim sql As String

Set con = CreateObject("adodbconnection")

'conOpen "DRIVER={Microsoft Access Driver (mdb:accdb)};DBQ=" & path

'上面这种方式连接数据库03版以前的EXCEL没问题,07以后得用下面这种驱动,我么有测试,估计得安装07版

'OFFICE里面的工具

conOpen "Provider=MicrosoftAceOLEDB120;Data Source=" & path

sql = "select from data where name='" & nam & "'"

Set rst = conExecute(sql)

If rstEOF Then

query = "0"

Else

query = rst(2) & " _ " & rst(1)

End If

conClose

Set rst = Nothing

Set con = Nothing

End Function

中间的应该是sheet1cells(1,3)copyfromrecordset rst

是不是应该写成data=rstfields("销售额")

回复:是的,这样就可以得到你想要的值。

以上就是关于在vba中怎样判断是否从数据库中查出记录全部的内容,包括:在vba中怎样判断是否从数据库中查出记录、请教怎么在access中用VBA导入excel数据到access库、求助,EXCEL通过VBA *** 作SQL数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/10104016.html

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

发表评论

登录后才能评论

评论列表(0条)

保存