蜡笔小新小新上小学之3:如何打开Access数据库

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/06 09:43:12
请问在VB环境编程中:
如何实现,用DAO对象打开带口令的Access数据库,以便进行读写.
谢谢!
vb6.0
DAO3.6

Visual Basic对Access数据库的集成非常紧密,通常由以下几个部分组成。

  引用DAO类型库

  1、从“工程”菜单中选择“引用”菜单项;

  2、在可引用列表框中选择“Microsoft DAO 3.51 Object Library”项。

  3、最后“确定”即可

  设置DAO数据类型变量

  DAO数据类型变量共分成两种:

  1、Database变量

  对应于Access数据库,通常在模块中被定义为Public全程变量:

  Public AccessDBF As Database

  '定义数据库对象实例AccessDBF

  2、RecordSet变量

  对应于Access数据库中的一个表,可定义为全程变量或局部变量,亦可作为函数参数进行传递:

  Dim thePrintTable As RecordSet

  '定义一个表对象实例thePrintTable

  打开DAO数据类型

  1、打开Access的方法

  通常可设置一个专门的Public函数用来打开一个Access数据库,并且该函数在启动窗体的Private Sub Form_load ( )过程中被调用,函数定义格式如下:

  Public Sub OpenDatabase ( )

  Dim sConeect As String

  SConnect = ";PWD = 8830428; UID = admin "

  '设置打开时的用户名、口令等参数

  Set AccessDBF = Nothing

  '确认关闭对象实例

  Set AccessDBF = WorksPaces (0 ).OpenDatabase (App.Path&&"/ToXls.MDB",False,sConnect)

  '打开当前路径的ToXls.MDB数据库

  End Sub

  2、打开RecordSet的方法

  RecordSet遵循即用即开的原则,所以它通常在函数中打开

  Set thePrintTable = AcessDBF.OpenRecordSet ( "Table_1",dbOpenSnapshot )

  相关的数据操作

  数据实际需要对Access表中的记录、字段、数据项进行操作。下列双重循环把数据输出到Excel对应的单元格中:

  For j = 0 To 2

  For I = 0 To 3

  ThePrintTable.MoveNext

  Excel.Sheet.Range ( Trim ( chr ( 71+j*10+I ) )+"G").Value = thePrintTable.Fields (0)

  Next I

  Next j

  关闭数据库

  1、关闭Database

  它通常在整个应用程序的最后进行操作,即通常出现在Private Sub Form_unload (Cannel As Interger )过程中。命令格式实例如下:

  AccessDBF.Close

  2、关闭RecordSet

如果你在这里咨询,你永远学不会.
还是找本书.参看 ado 章节。
dao模式的就不要再学习了.
=========
vb6.0本身就有一个ado data控件,

1.安装OFFICE 2003.
2.将后缀为ASP的ACCESS数据库文件改后缀为:mdb
3.打开.

vb 本身就有
OpenDatabase 函数

楼上的傻啊
只是打开 何苦引用vba
调excel阿

(可能需要引用ado
在工程--引用里)
用datagrid

dim db as database
dim rs as recordset
db=opendatabase("user id=;password=;data source=d:\a.mdb")
rs=db.OpenRecordSet( "Table1",dbOpenSnapshot)

datagrid1.datasouce=rs
datagrid1.bind

----------------模块 连接数据库代码-------------
'传递参数SQL传递查询语句,MsgString传递查询信息。自身以一个数据集对象的形式返回
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset
Dim Cnn As ADODB.Connection '定义连接
Dim Rst As ADODB.Recordset
Dim sTokens() As String '定义字符串

On Error GoTo ExecuteSQL_Error '异常处理

sTokens = Split(SQL) '用Split函数产生一个包含各个子串的数组

Set Cnn = New ADODB.Connection '创建连接
Cnn.Open ConnectString

If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then '判断字符串中是否含有指定内容
Cnn.Execute SQL '执行查询语句
MsgString = sTokens(0) & "query successful" '返回查询信息
Else
Set Rst = New ADODB.Recordset '闯将数据集对象
Rst.Open Trim$(SQL), Cnn, adOpenKeyset, adLockOptimistic '返回查询结果
Set ExecuteSQL = Rst '返回记录集对象
MsgString = "查询到" & Rst.RecordCount & " 条记录"
End If

ExecuteSQL_Exit:

Set Rst = Nothing '清空数据集对象
Set Cnn = Nothing '中断连接
Exit Function

ExecuteSQL_Error: '判断错误类型

MsgString = "查询错误:" & Err.Description
Resume ExecuteSQL_Exit

End Function

'连接数据库
Public Function ConnectString() As String
'返回一个数据库连接
ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database Password= abc ;Data Source=" & App.Path & "\data.mdb"
End Function

---------------窗体引用代码--------------
Dim TxtSQL As String
Dim Mrc As New ADODB.Recordset
Dim MsgText As String

TxtSQL = "select * from admin where Name='" & Me.TxtName.Text & "' and PSW='" & Me.TxtPSW.Text & "'"
Set Mrc = ExecuteSQL(TxtSQL, MsgText)

Set Conn = Server.CreateObject("ADODB.Connection")
ConnStr = "Provider = microsoft.jet.oledb.4.0;Data Source="&Server.MapPath("db/xxx.mdb")
Conn.Open ConnStr