请提供一个VB用代码访问Access数据库的例子!
很久没用VB了,以前学的一点都忘了。我原来有本电子书讲了怎么用代码访问的,但被我删掉了。我记得好像就是加入DAO支持后通过如下这样的代码访问ACCESS数据库文件的~~不用DATA控件,我只是用于很简单的对数据库记录的统计,而且要访问的ACCESS数据库文件的文件名或所在地也不一定固定,所以我才要用代码来访问。
Dim mydata As Database
Dim myres As Recordset
Set myres = mydata.OpenRecordset("e:\temp\temp.mdb")
问题点数:20、回复次数:17Top
1 楼pl5th2001(白牙)回复于 2002-05-26 18:07:01 得分 0
Option Explicit
Public m_Con As ADODB.Connection
Public m_Rs As ADODB.Recordset
Public Sub main()
Dim ConnStr As String
Set m_Con = CreateObject("ADODB.Connection")
ConnStr = "driver={Microsoft Access Driver (*.mdb)};dbq=" & App.Path & "\school.mdb"
m_Con.Open ConnStr
Load frmLogin
frmLogin.Show
End Sub
Option Explicit
Private Sub cmdCancel_Click()
End
End Sub
Private Sub cmdOK_Click()
Dim sql As String
sql = "select * from user where username=" & "'" & txtUserName & "'" & " and password=" & "'" & txtPassword & "'"
Set m_Rs = New ADODB.Recordset
m_Rs.Open sql, m_Con, adOpenDynamic, adLockOptimistic
If Not m_Rs.EOF Then
Unload Me
Load MDIForm1
MDIForm1.Show
Set m_Rs = Nothing
Else
MsgBox "Invalid Password, try again!", , "Login"
txtPassword.SetFocus
SendKeys "{Home}+{End}"
End If
End Sub
Top
2 楼ghgk(红猪侠)回复于 2002-05-26 18:10:36 得分 0
晕啊~~你这个过于复杂了,我原来看到那个很简单的~~我不用这么复杂的~Top
3 楼ghgk(红猪侠)回复于 2002-05-26 18:12:54 得分 0
你这个大概是通过ODBC访问吧~~如果我要访问PB的数据文件行不行~~是不是该把这里driver={Microsoft Access Driver (*.mdb)};变一下呢~Top
4 楼qbilbo(风之兄)回复于 2002-05-26 18:26:37 得分 0
我想你是用DAO的方法。
如下:
Dim mydata As Database
Dim myres As Recordset
set mydata=dbengine.opendatabase("e:\temp\temp.mdb",false,false,"ms access;")
set myres=db.openrecordset("表名")Top
5 楼monkey29(笨猴)回复于 2002-05-26 18:49:35 得分 0
刚做过一个,简单的说,加入DAO后,建立一个窗体,加一个data控件,名称data1,在form_load中添加:
data1.recordname=app.path&"\数据库名.mdb"
app.path是 指程序所在当前目录,路径的改变没有影响。
Top
6 楼ywchen2000(灌水大帝:努力奋斗)回复于 2002-05-26 19:14:07 得分 0
data1.recordset.addnew
data1.recordset.movenext
data1.recordset.movefirst
data1.recordset.movelast
data1.recordset.delete
data1.recordset.firdfirst
data1.recordset.findlast
DAO 就是着几条命令。还有一条,但是单词我忘了怎么打了Top
7 楼czj2000(chenzhujun)回复于 2002-05-26 19:14:33 得分 0
Dim ConnStr As String
Set m_Con = CreateObject("ADODB.Connection")
ConnStr = "driver={Microsoft Access Driver (*.mdb)};dbq=" & App.Path & "\school.mdb"
m_Con.Open ConnStr
dim rs as recordset
set rs = new recordset
rs.open("database name","table")Top
8 楼ghgk(红猪侠)回复于 2002-05-26 19:15:30 得分 0
不对,我的意思不使用DAO~~而上面那位qbilbo(风之兄)提供的东西也不对的啊~Top
9 楼MarGo(潇洒)回复于 2002-05-26 19:18:02 得分 0
ACCESS2000:
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim res As New ADODB.Recordset
cnn.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=" "\YourDB.mdb;Persist Security Info=False"
cnn.Open
Set cmd.ActiveConnection = cnn
cmd.CommandText = strSQL 'strSQL是你的 SQL 语句
set res=cmd.ExecuteTop
10 楼MarGo(潇洒)回复于 2002-05-26 19:18:32 得分 0
ACCESS 97:
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim res As New ADODB.Recordset
cnn.ConnectionString= "Provider=Microsoft.Jet.OLEDB 3.51;DataSource=" "\YourDB.mdb;Persist Security Info=False"
cnn.Open
Set cmd.ActiveConnection = cnn
cmd.CommandText = strSQL 'strSQL是你的 SQL 语句
set res=cmd.Execute
Top
11 楼2002oncemore(最爱星际(protoss)不服来挑!)回复于 2002-05-26 19:24:11 得分 0
正确答案:(adodb实现)
dim cnn as new conncetion
dim rst as new recordset
with cnn
.provider="microsoft..jet.oledb.4.0"
.open "c:/1.mdb" '假设acces数据库为c盘1这个文件
end with
with rst
.activeconnection=cnn
.cusorlocation=userclient
.cusortype=openstatic
.open "select ........." '(sql语句)
end with
此为用adodb实现,当然用command也可以,但以上是较高效简单的。
Top
12 楼2002oncemore(最爱星际(protoss)不服来挑!)回复于 2002-05-26 19:27:41 得分 0
dim cnn as new adodb.conncetion
dim rst as new adodb.recordset
with cnn
.provider="microsoft..jet.oledb.4.0"
.open "c:/1.mdb" '假设acces数据库为c盘1这个文件
end with
with rst
.activeconnection=cnn
.cusorlocation=userclient
.cusortype=openstatic
.open "select ........." '(sql语句)
end with
此为用adodb实现,当然用command也可以,但以上是较高效简单的Top
13 楼ghgk(红猪侠)回复于 2002-05-26 19:29:21 得分 0
全部不是我要的啦,我想要那个更加的简单明了。基本上有些像这个样,记得是在《VB从入门到精通》里看到的~~只需在引用中加用DAO支持就可以了~不用使用数据访问控件什么的~~有些像如下这个样子,但如下代码运行不了~到第四行出错~
dim aa as dbenging
Dim mydata As Database
Dim myres As Recordset
set mydata=aa.opendatabase("e:\temp\temp.mdb",false,false,"ms access;")
set myres=mydata.openrecordset("表名")
Top
14 楼blueer(Observer(shop33291608.taobao.com,主营小家电,mp3,总代货源))回复于 2002-05-26 22:13:00 得分 0
dim mydata as new database
dim myres as new recordset..........
私下建议用Ado,呵呵Top
15 楼ghgk(红猪侠)回复于 2002-05-26 23:17:23 得分 0
不好意思,我是菜鸟。谁能给我一个详细些的代码?能运行的~~
ado有没有资料~Top
16 楼qbilbo(风之兄)回复于 2002-05-26 23:52:57 得分 20
Dim mydata As Database
Dim myres As Recordset
set mydata=dbengine.opendatabase("e:\temp\temp.mdb",false,false,"ms access;")
set myres=db.openrecordset("表名")
只要引用了DAO,这个代码就不会错的啊!你是不是哪个符号打错了。
能不能告诉我错误号,或错误提示。
你的代码中dim aa as dbengine有问题。
dbengine是DAO结构中的最上层,不需要申明,也不能声明。
Top
17 楼ghgk(红猪侠)回复于 2002-05-27 22:06:06 得分 0
谢谢qbilbo(风之兄)你所给出的代码是正确可运行的,也感谢各位的热心解答。Top




