博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

ox0spy

east or west the home is best
  angle4.cublog.cn

关于作者
姓名:BaiGe
职业:Administrator
年龄:21
位置:root
个性介绍:
|| << >> ||
我的分类


VB动态连接数据库
在控件的属性中设置数据库路径,就会造成程序无法打包给别人用
总之,以后很麻烦
看到一篇介绍动态连接数据库的,我现在需要,转之
=================================================================================
一、用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;"
注意连接之间的";"
=================================================================================

 原文地址 http://www.xuevb.net/modules/news/article.php?storyid=811
发表于: 2007-01-08,修改于: 2007-01-08 18:58,已浏览1424次,有评论0条 推荐 投诉


网友评论
 发表评论