如何在 Access 2003 和 Access 2002 中創(chuàng)建 DSN 的連接到 SQLServer 對鏈接表
更新時(shí)間:2006年10月13日 00:00:00 作者:
方法 1: 使用 CreateTableDef 方法
CreateTableDef 方法可創(chuàng)建鏈接表。 若要使用此方法, 創(chuàng)建一個(gè)新模塊, 然后以下 AttachDSNLessTable 函數(shù)添加到新模塊。
'//Name : AttachDSNLessTable
'//Purpose : Create a linked table to SQL Server without using a DSN
'//Parameters
'// stLocalTableName: Name of the table that you are creating in the current database
'// stRemoteTableName: Name of the table that you are linking to on the SQL Server database
'// stServer: Name of the SQL Server that you are linking to
'// stDatabase: Name of the SQL Server database that you are linking to
'// stUsername: Name of the SQL Server user who can connect to SQL Server, leave blank to use a Trusted Connection
'// stPassword: SQL Server user password
Function AttachDSNLessTable(stLocalTableName As String, stRemoteTableName As String, stServer As String, stDatabase As String, Optional stUsername As String, Optional stPassword As String)
On Error GoTo AttachDSNLessTable_Err
Dim td As TableDef
Dim stConnect As String
For Each td In CurrentDb.TableDefs
If td.Name = stLocalTableName Then
CurrentDb.TableDefs.Delete stLocalTableName
End If
Next
If Len(stUsername) = 0 Then
'//Use trusted authentication if stUsername is not supplied.
stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";Trusted_Connection=Yes"
Else
'//WARNING: This will save the username and the password with the linked table information.
stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";UID=" & stUsername & ";PWD=" & stPassword
End If
Set td = CurrentDb.CreateTableDef(stLocalTableName, dbAttachSavePWD, stRemoteTableName, stConnect)
CurrentDb.TableDefs.Append td
AttachDSNLessTable = True
Exit Function
AttachDSNLessTable_Err:
AttachDSNLessTable = False
MsgBox "AttachDSNLessTable encountered an unexpected error: " & Err.Description
End Function
若要調(diào)用 AttachDSNLessTable 函數(shù), 請代碼, 它類似于之一以下代碼示例在 Autoexec 宏中或啟動(dòng)窗體 Form_Open 事件中:
若要調(diào)用 CreateDSNConnection 函數(shù), 請代碼, 它類似于之一以下代碼示例在 Autoexec 宏中或啟動(dòng)窗體 Form_Open 事件中:
注意 此方法假定通過使用 " myDSN " 作為 DSN 名稱, 您已經(jīng)創(chuàng)建鏈接 SQLServer 表 Access 數(shù)據(jù)庫中。
請 CreateTableDef 方法, 有關(guān)訪問下列 Microsoft Developer Network (MSDN) Web 站點(diǎn):
CreateTableDef 方法可創(chuàng)建鏈接表。 若要使用此方法, 創(chuàng)建一個(gè)新模塊, 然后以下 AttachDSNLessTable 函數(shù)添加到新模塊。
復(fù)制代碼 代碼如下:
'//Name : AttachDSNLessTable
'//Purpose : Create a linked table to SQL Server without using a DSN
'//Parameters
'// stLocalTableName: Name of the table that you are creating in the current database
'// stRemoteTableName: Name of the table that you are linking to on the SQL Server database
'// stServer: Name of the SQL Server that you are linking to
'// stDatabase: Name of the SQL Server database that you are linking to
'// stUsername: Name of the SQL Server user who can connect to SQL Server, leave blank to use a Trusted Connection
'// stPassword: SQL Server user password
Function AttachDSNLessTable(stLocalTableName As String, stRemoteTableName As String, stServer As String, stDatabase As String, Optional stUsername As String, Optional stPassword As String)
On Error GoTo AttachDSNLessTable_Err
Dim td As TableDef
Dim stConnect As String
For Each td In CurrentDb.TableDefs
If td.Name = stLocalTableName Then
CurrentDb.TableDefs.Delete stLocalTableName
End If
Next
If Len(stUsername) = 0 Then
'//Use trusted authentication if stUsername is not supplied.
stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";Trusted_Connection=Yes"
Else
'//WARNING: This will save the username and the password with the linked table information.
stConnect = "ODBC;DRIVER=SQL Server;SERVER=" & stServer & ";DATABASE=" & stDatabase & ";UID=" & stUsername & ";PWD=" & stPassword
End If
Set td = CurrentDb.CreateTableDef(stLocalTableName, dbAttachSavePWD, stRemoteTableName, stConnect)
CurrentDb.TableDefs.Append td
AttachDSNLessTable = True
Exit Function
AttachDSNLessTable_Err:
AttachDSNLessTable = False
MsgBox "AttachDSNLessTable encountered an unexpected error: " & Err.Description
End Function
若要調(diào)用 AttachDSNLessTable 函數(shù), 請代碼, 它類似于之一以下代碼示例在 Autoexec 宏中或啟動(dòng)窗體 Form_Open 事件中:
• | 當(dāng)您使用 Autoexec, 調(diào)用 AttachDSNLessTable 函數(shù), 并然后傳遞參數(shù), 如以下所示從 RunCode 操作。
|
• | 當(dāng)您使用啟動(dòng)窗體, 將代碼, 它類似于以下以 Form_Open 事件。 向 Access 數(shù)據(jù)庫添加多個(gè)鏈接表時(shí) 注意 您必須調(diào)整編程邏輯。 |
方法 2: 使用 DAO.RegisterDatabase 方法
DAO.RegisterDatabase 方法可在 Autoexec 宏中或啟動(dòng)表單中創(chuàng)建 DSN 連接。 盡管此方法不刪除對 DSN 連接, 要求它不幫助您通過代碼中創(chuàng)建 DSN 連接解決問題。 若要使用此方法, 創(chuàng)建一個(gè)新模塊, 然后以下 CreateDSNConnection 函數(shù)添加到新模塊。'//Name : CreateDSNConnection
'//Purpose : Create a DSN to link tables to SQL Server
'//Parameters
'// stServer: Name of SQL Server that you are linking to
'// stDatabase: Name of the SQL Server database that you are linking to
'// stUsername: Name of the SQL Server user who can connect to SQL Server, leave blank to use a Trusted Connection
'// stPassword: SQL Server user password
Function CreateDSNConnection(stServer As String, stDatabase As String, Optional stUsername As String, Optional stPassword As String) As Boolean
On Error GoTo CreateDSNConnection_Err
Dim stConnect As String
If Len(stUsername) = 0 Then
'//Use trusted authentication if stUsername is not supplied.
stConnect = "Description=myDSN" & vbCr & "SERVER=" & stServer & vbCr & "DATABASE=" & stDatabase & vbCr & "Trusted_Connection=Yes"
Else
stConnect = "Description=myDSN" & vbCr & "SERVER=" & stServer & vbCr & "DATABASE=" & stDatabase & vbCr
End If
DBEngine.RegisterDatabase "myDSN", "SQL Server", True, stConnect
'// Add error checking.
CreateDSNConnection = True
Exit Function
CreateDSNConnection_Err:
CreateDSNConnection = False
MsgBox "CreateDSNConnection encountered an unexpected error: " & Err.Description
End Function
注意 如果再次, 調(diào)用 RegisterDatabase 方法 DSN 更新。若要調(diào)用 CreateDSNConnection 函數(shù), 請代碼, 它類似于之一以下代碼示例在 Autoexec 宏中或啟動(dòng)窗體 Form_Open 事件中:
• | 當(dāng)您使用 Autoexec, 調(diào)用 CreateDSNConnection 函數(shù), 并然后傳遞參數(shù), 如以下所示從 RunCode 操作。
|
• | 當(dāng)您使用啟動(dòng)窗體, 將代碼, 它類似于以下以 Form_Open 事件。
|
請 CreateTableDef 方法, 有關(guān)訪問下列 Microsoft Developer Network (MSDN) Web 站點(diǎn):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/office97/html/output/F1/D2/S5A289.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/office97/html/output/F1/D2/S5A289.asp)
有關(guān) RegisterDatabase 方法, 請?jiān)L問以下 MSDNWeb 站點(diǎn):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/office97/html/output/F1/D2/S5A2EA.asp (http://msdn.microsoft.com/library/default.asp?url=/library/en-us/office97/html/output/F1/D2/S5A2EA.asp)
您可能感興趣的文章:
- 隨機(jī)提取Access/SqlServer數(shù)據(jù)庫中的10條記錄的SQL語句
- ACCESS轉(zhuǎn)SQLSERVER數(shù)據(jù)庫的注意事項(xiàng)
- Access轉(zhuǎn)SqlServer的注意事項(xiàng)
- asp.net 數(shù)據(jù)庫備份還原(sqlserver+access)
- SQL 隨機(jī)查詢 包括(sqlserver,mysql,access等)
- Excel導(dǎo)入Sqlserver數(shù)據(jù)庫腳本
- ASP將Excel數(shù)據(jù)導(dǎo)入到SQLServer的實(shí)現(xiàn)代碼
- ADO.NET 連接數(shù)據(jù)庫字符串小結(jié)(Oracle、SqlServer、Access、ODBC)
- 解析SQLServer獲取Excel中所有Sheet的方法
- 將ACCESS數(shù)據(jù)庫遷移到SQLSERVER數(shù)據(jù)庫兩種方法(圖文詳解)
- 將excel高效導(dǎo)入sqlserver的可行方法
- SQL SERVER 2008 64位系統(tǒng)無法導(dǎo)入ACCESS/EXCEL怎么辦
相關(guān)文章
asp cookie中文Javascript取得中文cookie
這篇文章主要介紹了asp cookie中文Javascript取得中文cookie,原理就是將中文編碼改成UTF-8編碼格式,傳到前臺,再用JS將其解碼2014-07-07ASP checkbox復(fù)選框是否被選中的代碼(結(jié)合數(shù)據(jù)庫)
ASP從數(shù)據(jù)庫中讀出復(fù)選框是否被選中的代碼2010-06-06ASP基礎(chǔ)入門第五篇(ASP腳本循環(huán)語句)
在本文上兩篇中,我們學(xué)習(xí)了腳本語言 VBScript 的變量、函數(shù)、過程和條件語句,本篇將繼續(xù)給大家介紹 VBScipt 的循環(huán)語句,并對腳本語言在 ASP 中的應(yīng)用加以總結(jié)。2015-10-10asp數(shù)據(jù)庫連接rs("user.id")
數(shù)據(jù)庫連接,有時(shí)會出錯(cuò)在conn.open connstr這地方的問題,及聯(lián)接查詢調(diào)用rs("user.id")的問題2008-07-07