北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |
我从网上抄了一段代码,改后希望实现在access里自动连接SQL表。以下代码能运行并自动创建SQL链接表了,但是
每次重新打开access,用到链接表都要重新输入一次 用户名和密码。我原来在access里不用代码、手工做的SQL链接表,有个选项“保存密码”,勾选后就不需要每次输入用户名和密码了
(注:我把SQL源表和ACCESS目标表名,还有数据库名 放在表[ZZ11-SQL-Access对应表]中 )
代码如下:
Public Function LinkSQLTable(ServerIP As String, User As String, Optional PSW As String)
'连接指定的数据库中的表
'使用方法:Call 公用模块.LinkSQLTable("192.168.18.2","sa","1234")
'使用方法:Call 公用模块.LinkSQLTable("127.0.0.1","sa")
Dim dbs As Database
Dim tdf As TableDef
Dim Lianjie As String
Dim SourceTbl, TargetTbl As String
Dim con As Object
Dim rs As Object
Dim stSql As String
Dim intI As Integer
Dim SQLDBname As String
LinkSQLTable = False
If PSW <> "" Then
Lianjie = "ODBC;DRIVER=SQL Server;SERVER=" & ServerIP & ";UID=" & User & ";" & "PWD=" & PSW & ";" & "DATABASE="
Else
Lianjie = "ODBC;DRIVER=SQL Server;SERVER=" & ServerIP & ";UID=" & User & ";PWD=;" & "DATABASE="
End If
' Open the table
Set con = Application.CurrentProject.Connection
stSql = "SELECT * FROM [ZZ11-SQL-Access对应表]"
Set rs = CreateObject("ADODB.Recordset")
rs.Open stSql, con, 1 ' 1 = adOpenKeyset
rs.MoveFirst
'以下是进行循环计算的程序
While (Not (rs.EOF))
SourceTbl = rs![SQL表格]
TargetTbl = rs![Access 表格]
SQLDBname = rs![数据库名]
DoCmd.DeleteObject acTable, TargetTbl '删除原链接表
Set tdf = CurrentDb.CreateTableDef(SourceTbl)
tdf.Connect = Lianjie & SQLDBname & ";"
tdf.SourceTableName = SourceTbl
tdf.NAME = TargetTbl
CurrentDb.TableDefs.Append tdf '添加链接表
rs.MoveNext
Wend
rs.close
Set rs = Nothing
Set con = Nothing
Set dbs = Nothing
LinkSQLTable = True
End Function
请哪位大侠帮我看看,如何才能把用户名和密码保存,请不吝赐教呀 !