VB如何把数据库链接放在模块里

2024-11-21 02:40:34
推荐回答(2个)
回答(1):

新建一个模块【工程】-【添加模块】(注意,不是类模块),在对话框中打开即可,这样在工程窗口有一个Module1的模块,在模块中输入:
Public conn As New ADODB.Connection, rs As New ADODB.Recordset

Public Sub SJK(conn)
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\date\ftp.mdb;Persist Security Info=False"
conn.Open
End Sub
这样在其他页面只需要:
Call SJK(conn)
就可以

回答(2):

给你代码参考下
Public Sub 将数据库记录数据全部导入到Excel工作表ADO之三()
Dim myData As String, myTable As String
Dim cnn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim i As Integer
ActiveSheet.Cells.Clear '清除工作表的全部数据
myData = ThisWorkbook.Path & "\学生成绩管理.mdb" '指定数据库
myTable = "期末成绩" '指定数据表
'建立与数据库的连接
Set cnn = New ADODB.Connection
With cnn
.Provider = "microsoft.jet.oledb.4.0"
.Open myData
End With
'查询数据表
Set rs = New ADODB.Recordset
rs.Open myTable, cnn, adOpenKeyset, adLockOptimistic, adCmdTableDirect
'显示查询结果
MsgBox "数据库中的记录数为:" & rs.RecordCount
' 复制记录数据
If rs.RecordCount > 0 Then
'复制字段名
For i = 1 To rs.Fields.Count
Cells(1, i) = rs.Fields(i - 1).Name
Next i
With Range(Cells(1, 1), Cells(1, rs.Fields.Count))
.Font.Bold = True
.HorizontalAlignment = xlCenter
End With
'复制全部数据
Range("A2").CopyFromRecordset rs
'设置工作表格式
ActiveSheet.Cells.Font.Size = 10
ActiveSheet.Columns.AutoFit
End If
'关闭记录集及数据库连接,并释放变量
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing