|
在控件的属性中设置数据库路径,就会造成程序无法打包给别人用 总之,以后很麻烦 看到一篇介绍动态连接数据库的,我现在需要,转之 ================================================================================= 一、用data控件进行数据库链接,可以这样: 在form_load()过程中放入: private form_load() Dim str As String '定义 str = App.Path If Right(str, 1) <> "\" Then str = str + "\" End If data1.databasename=str & "\数据库名" data1.recordsource="数据表名" data1.refresh sub end 这几句话的意为,打开当前程序运行的目录下的数据库。 你只要保证你的数据库在你程序所在的目录之下就行了。
对于有密码的MDB 文件: 以上修改为: data1.databasename=str & "\数据库名" Data1.Connect = "Access 2000;pwd=123" data1.recordsource="数据表名" data1.refresh
二、利用adodc(ADO Data Control)进行数据库链接: private form_load () Dim str As String '定义 str = App.Path If Right(str, 1) <> "\" Then str = str + "\" End If str = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & str & "\tsl.mdb" Adodc1.ConnectionString = str Adodc1.CommandType = adCmdText Adodc1.RecordSource = "select * from table3" Adodc1.Refresh end sub
对于有密码的MDB 文件: 以上修改为:注意连接之间的";"。 adostr
= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & adostr &
"\data\db.mdb;" & "Jet OLEDB:Database Password=123;"
三、利用DataEnvironment进行数据库链接 可在过程中放入: On Error Resume Next If DataEnvironment1.rsCommand1.State <> adStateClosed Then DataEnvironment1.rsCommand1.Close '如果打开,则关闭 End If 'i = InputBox("请输入友人编号:", "输入") 'If i = "" Then Exit Sub DataEnvironment1.Connection1.Open App.Path & "\userdatabase\tsl.mdb" DataEnvironment1.rsCommand1.Open "select * from table3 where 编号='" & i & "'" 'Set DataReport2.DataSource = DataEnvironment1 'DataReport2.DataMember = "command1" 'DataReport2.show end sub 对于有密码的MDB 文件: 以上修改为:DataEnvironment1.Connection1.Open App.Path & "\userdatabase\tsl.mdb;" & "Jet OLEDB:Database Password=123;" 可以在模块定义DataEnvironment1然后在load中打开: '模块中定义数据环境: Global Const DEFSOURCE = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" Public db As ADODB.Connection Public Sub OpenDB() Set db = New ADODB.Connection db.Open DEFSOURCE & App.Path & "\data\db.mdb;" & "Jet OLEDB:Database Password=123;" denv.Connection1 = DEFSOURCE & App.Path & "\data\db.mdb;" & "Jet OLEDB:Database Password=123;" End Sub 在load中调用opendb()即可动态定义数据环境。 不带密码的为: Global Const DEFSOURCE = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=" Public db As ADODB.Connection Public Sub OpenDB() Set db = New ADODB.Connection db.Open DEFSOURCE & App.Path & "\data\db.mdb;" denv.Connection1 = DEFSOURCE & App.Path & "\data\db.mdb;" End Sub
四、利用ADO(ActiveX Data Objects)进行编程: 建立连接: dim conn as new adodb.connection dim rs as new adodb.recordset dim str str = App.Path If Right(str, 1) <> "\" Then str = str + "\" End If str = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=" & str & "\tsl.mdb" conn.open str rs.cursorlocation=aduseclient rs.open "数据表名",conn,adopenkeyset.adlockpessimistic 用完之后关闭数据库: conn.close set conn=nothing 对于有密码的MDB 文件: 以上修改为: str = "Provider=Microsoft.Jet.OLEDB.3.51;Data Source=" & str & "\tsl.mdb;" & "Jet OLEDB:Database Password=123;" 注意连接之间的";" =================================================================================
|