VB6怎样获取Access数据库中的内容

不要用控件,用ADO或DAO对象这个数据库有密码,例如主键是ID,自动编号的数值型。然后有一个日期型字段和一个数值型字段,我想要获取到主键ID=20对应的日期型字段和数值... 不要用控件,用ADO或DAO对象

这个数据库有密码,例如主键是ID,自动编号的数值型。然后有一个日期型字段和一个数值型字段,
我想要获取到主键ID=20对应的日期型字段和数值型字段的内容

用VB6写代码该如何实现?具体一点
展开
 我来答
报文露4840
推荐于2017-11-25 · TA获得超过428个赞
知道小有建树答主
回答量:503
采纳率:50%
帮助的人:421万
展开全部
首先要在工程的引用中选上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

以上只是示例,在实际使用过程中,可以将一些内容用控件输入等方式进行,这样就有很大的灵活性了
更多追问追答
追问


Conn.Open connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\newdata.mdb;Persist Security Info=True;Jet OLEDB:Database Password=123"


这一句发生错误

追答
您把:
Conn.Open connstring ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & “数据库的路径和名字” & ";Persist Security Info=True;Jet OLEDB:Database Password= & "数据库密码"

这句改为下面的两句 您再试试

connstring = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & "数据库的路径和名字" & ";Jet OLEDB:Database password=" & "数据库密码"
Conn.Open connstring
COUNTIFABS
2013-07-09 · TA获得超过2154个赞
知道大有可为答主
回答量:1594
采纳率:55%
帮助的人:1234万
展开全部

说下方法:

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,就是这样了;

追问
我没要放到excel里面
追答

那就下面这种,取出来后,后面怎么操作,你要放那里你在自己补充:我把代码简化了下,容易看的懂些;

Sub AC()
Dim cnn As New Connection
Dim rs As New Recordset
Dim sql As String

cnn.Open "Provider=Microsoft.Ace.OleDB.12.0;dataSource=" & ThisWorkbook.Path & "\数据库.accdb"
sql = "select * from [宏站] "
  
rs.Open sql, cnn
  
'这里你自己补充!上面都是连接、查寻!
  
EndSub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
管理时
2013-07-09
知道答主
回答量:10
采纳率:100%
帮助的人:4.7万
展开全部
在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("数值字段名")
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式