首先要在工程的引用中选上Microsoft ActiveX Data Objects 2.5 Library
然后在事件中就可以定义相关的变量进行连接了
下面的例子可能对您有用:
Private Sub Command1_Click()
Dim Conn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Conn.Open connstring ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & “数据库的路径和名字” & ";Persist Security Info=True;Jet OLEDB:Database Password= & "数据库密码"
sql = "Select * From “ & ”表名" & where ID=20"
Rs.Open sql, Conn, 1, 3
If NOT rs.eof then
m_date= rs("日期型字段的名字")
m_data= rs("数值型字段的名字")
end if
上面的例子实现了查询
如果是要添加,删除,更新等操作,只要编写相应的SQL语句,再用
Conn.Execute SQL 就可以了,如:
添加的:
SQL="Insert Into [UserInfo](User,Password) Values('aaaa','1234')"
Conn.Execute SQL '执行后,就添加了一条记录
删除:
SQL="Delete From [UserInfo] Where User='aaaa'"
Conn.Execute SQL '删除用户名为aaaa的用户记录
更新:
SQL="Update [UserInfo] Set Password='abcdefg' Where User='aaaa'"
Conn.Execute SQL '执行后,修改用户aaaa的密码为abcdefg
以上只是示例,在实际使用过程中,可以将一些内容用控件输入等方式进行,这样就有很大的灵活性了
说下方法:
1、首先要与ACCESS数据库连接;
方法如下:
Sub AC()
Dim cnn As New Connection
Dim rs As New Recordset
Dim sql As String
Dim qx As String
qx = "金牛"
cnn.Open "Provider=Microsoft.Ace.OleDB.12.0;dataSource=" & ThisWorkbook.Path & "\数据库.accdb"
sql = "select * from [宏站] where 区域='"& qx & "'"
rs.Open sql, cnn
[a1].CopyFromRecordset rs
EndSub
这段代码为VBA中的,但差别也只[a1].CopyFromRecordset rs这句旁边 不同;因为你是VB连接,所以还得定议一个连接EXCEL的应该,如下:
2、连接EXCEL
' 在VB中要想调用Excel,需要打开VB编程环境“工程”菜单中的“引用”项目,
'并选取项目中的“Microsoft Excel 12.0 object library”项。
' 因为EXCEL是以层次结构组织对象的,其对象模型中含有许多不同的对象元素。
' 第一层:Application对象,即Excel本身;
' 第二层:workbooks对象集,指Excel的工作簿文件;
'
' 第三层:worksheets对象集,表示的是Excel的一个工作表;
'
' 第四层:Cells和Range对象,指向Excel工作表中的单元格。
Dim xlapp As Excel.Application 'Excel对象
Dim xlbook As Excel.Workbook '工作簿
Dim xlsheet As Excel.Worksheet '工作表
Dim xlrange As Excel.Range
Private Sub Command1_Click()
Set xlapp = CreateObject("excel.application") '第一层
Set xlbook = xlapp.Workbooks.Open("d:\123.xlsx")
'Set xlbook = xlapp.Workbooks.Add
xlapp.Visible = True
'xlbook.RunAutoMacros (xlAutoOpen)
Dim x As Integer
For x = 1 To xlbook.Sheets.Count
Set xlsheet = xlbook.Sheets(x)
'上面为第二层引用,而且引有了3个SHEET,如果这里只定义了SHEET2,那么下面只能用SHEET2
'如果要引用sheet1,那么第三层,如RANGE,cell等属性是用不了的
Next x
Dim arr
arr = Range("a1:b10")
MsgBox arr(10, 2)
Unload Me
End Sub
3、把在你查到的数据放回到EXCEL,就是这样了;
在VB6中添加引用Microsoft Activex Data Objects 2.6 Library或以上
第一步连接ACCESS数据库
声明变量
Dim LocCnn1 As ADODB.Connection
Dim LocRst1 As ADODB.Record
Set LocCnn1 = New ADODB.Connection
LocCnn1.Open 〃Provider=Microsoft.Jet.OLEDB.4.0?User ID=Admin?〃 & _
〃Data Source=〃 & App.Path & 〃\数据库名称.mdb?〃& _
〃Mode=Share Deny None?Extended Properties=''?Persist Security Info=False?〃 & _
〃Jet OLEDB?Database Password='密码'?〃
查询获取需要的记录
Set LocRst1 = New ADODB.Record
LocRst1.CursorType = adOpenKey
LocRst1.LockType = adLockOptimistic
LocRst1.Open 〃SELECT * FROM 表名where ID=" & ID,LocCnn1
dateRQ=LocRst1.fields("日期字段名")
intSZ=LocRst1.fields("数值字段名")