Tạo User DSN cho CSDL Access

Liên hệ QC

levanduyet

Hãy để gió cuốn đi.
Thành viên danh dự
Tham gia
30/5/06
Bài viết
1,798
Được thích
4,705
Giới tính
Nam
Đây là đoạn code VB tạo User DSN cho cơ sở dữ liệu Access.
Phần này bổ xung cho phần các bạn hỏi việc tạo DSN trong bài hướng dẫn tạo theo kiểu manual của tôi.

Mã:
Private Const REG_DWORD = 4&
Private Const REG_SZ = 1
Private Const HKEY_CURRENT_USER = &H80000001

Private Declare Function RegCreateKey Lib "advapi32.dll" _
Alias "RegCreateKeyA" (ByVal hKey As Long, _
ByVal lpSubKey As String, phkResult As Long) As Long

Private Declare Function RegSetValueEx Lib "advapi32.dll" _
Alias "RegSetValueExA" (ByVal hKey As Long, _
ByVal lpValueName As String, ByVal Reserved As Long, _
ByVal dwType As Long, lpData As Any, _
ByVal cbData As Long) As Long

Private Declare Function RegCloseKey Lib "advapi32.dll" _
(ByVal hKey As Long) As Long

Private Sub Command1_Click()
Dim DataSourceName As String
Dim DBQ As String
Dim Description As String
Dim DriverPath As String
Dim DriverId As Long
Dim DriverName As String
Dim User As String
Dim PWD As String

Dim lResult As Long
Dim hKeyHandle As Long
Dim hKeyHandSub As Long

DataSourceName = "nnbphuong"
DBQ = App.Path & "\nnbphuong.mdb"
Description = "nnbphuong's data"
DriverPath = "C:\windows\System\odbcjt32.dll"
PWD = "nnbphuong"
DriverId = 19
User = "admin"
DriverName = "MIcrosoft Access Driver (*.mdb)"

lResult = RegCreateKey(HKEY_CURRENT_USER, _
"SOFTWARE\ODBC\ODBC.INI\" & DataSourceName, hKeyHandle)

lResult = RegSetValueEx(hKeyHandle, "DBQ", _
0&, REG_SZ, ByVal DBQ, Len(DBQ))
lResult = RegSetValueEx(hKeyHandle, "Description", _
0&, REG_SZ, ByVal Description, Len(Description))
lResult = RegSetValueEx(hKeyHandle, "Driver", _
0&, REG_SZ, ByVal DriverPath, Len(DriverPath))
lResult = RegSetValueEx(hKeyHandle, "DriverID", _
0&, REG_DWORD, 25, 4)
lResult = RegSetValueEx(hKeyHandle, "FIL", _
0&, REG_SZ, ByVal "MS Access", 9)
lResult = RegSetValueEx(hKeyHandle, "PWD", _
0&, REG_SZ, ByVal PWD, Len(PWD))
lResult = RegSetValueEx(hKeyHandle, "SafeTransactions", _
0&, REG_DWORD, 0, 4)
lResult = RegSetValueEx(hKeyHandle, "UID", _
0&, REG_SZ, ByVal User, Len(User))

lResult = RegCreateKey(HKEY_CURRENT_USER, _
"SOFTWARE\ODBC\ODBC.INI\" & DataSourceName & _
"\Engines\Jet", hKeyHandSub)

lResult = RegSetValueEx(hKeyHandSub, "ImplicitCommitSync", _
0&, REG_SZ, ByVal "", 0)
lResult = RegSetValueEx(hKeyHandSub, "MaxBufferSize", _
0&, REG_DWORD, 2048, 4)
lResult = RegSetValueEx(hKeyHandSub, "PageTimeout", _
0&, REG_DWORD, 5, 4)
lResult = RegSetValueEx(hKeyHandSub, "Threads", _
0&, REG_DWORD, 3, 4)
lResult = RegSetValueEx(hKeyHandSub, "UserCommitSync", _
0&, REG_SZ, ByVal "Yes", 3)

lResult = RegCloseKey(hKeyHandSub)

lResult = RegCloseKey(hKeyHandle)

lResult = RegCreateKey(HKEY_CURRENT_USER, _
"SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources", hKeyHandle)
lResult = RegSetValueEx(hKeyHandle, DataSourceName, 0&, _
REG_SZ, ByVal DriverName, Len(DriverName))
lResult = RegCloseKey(hKeyHandle)
End Sub

Lê Văn Duyệt
 
Web KT

Bài viết mới nhất

Back
Top Bottom