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() 'OpendialogDim 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数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)