小弟第一次在VB区提问,VB大哥帮忙.
因为公司部分MRP是Access作后台数据库, 现在要对某一数据库里面的
所有用ODBC连接表进刷新, Access是连接到工作组的, 每次刷新总是
出现ACCESS登陆密码,有什么去掉. Dim Wksp As Workspace
Dim DB As Database
Set Wksp = CreateWorkspace("test", txtMdbUID.Text, txtMdbPassword.Text, dbUseJet)
'上面的代码用 wksp.OpenDataBase(FileName)出现"无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。" 但是我根本没有打开Access程序, 用户名\密码都正确
'Set Wksp = CreateWorkspace("test", "Admin", "", dbUseJet)
Set DB = Wksp.OpenDatabase(FileName)
'以下的代码没有问题
sttt = "ODBC;DSN=" & wooldns & ";SERVER=" & servername & ";UID=" & UNameStr & ";PWD=" & Upass & ";WSID=ZW1;DATABASE=" & wooldb & ""
Set TblDf = DBEngine(0).Databases(0).TableDefs
Y = TblDf.Count
pb1.Value = 0
pb1.Min = 0
pb1.Max = Y - 1
For X = 0 To Y - 1
st = TblDf(X).Connect
If Left(st, 4) = "ODBC" Then
TblDf(X).Connect = sttt
TblDf(X).RefreshLink
Else
If Left(st, 9) = ";DATABASE" Then
TblDf(X).Connect = ";DATABASE=" & App.Path & "\temp.mdb"
TblDf(X).RefreshLink
End If
End If
pb1.Value = X
Next
DB.Close
Wksp.Close
Exit SubErrMsg:
Debug.Print Err.Description
DB.Close
Wksp.Close
因为公司部分MRP是Access作后台数据库, 现在要对某一数据库里面的
所有用ODBC连接表进刷新, Access是连接到工作组的, 每次刷新总是
出现ACCESS登陆密码,有什么去掉. Dim Wksp As Workspace
Dim DB As Database
Set Wksp = CreateWorkspace("test", txtMdbUID.Text, txtMdbPassword.Text, dbUseJet)
'上面的代码用 wksp.OpenDataBase(FileName)出现"无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。" 但是我根本没有打开Access程序, 用户名\密码都正确
'Set Wksp = CreateWorkspace("test", "Admin", "", dbUseJet)
Set DB = Wksp.OpenDatabase(FileName)
'以下的代码没有问题
sttt = "ODBC;DSN=" & wooldns & ";SERVER=" & servername & ";UID=" & UNameStr & ";PWD=" & Upass & ";WSID=ZW1;DATABASE=" & wooldb & ""
Set TblDf = DBEngine(0).Databases(0).TableDefs
Y = TblDf.Count
pb1.Value = 0
pb1.Min = 0
pb1.Max = Y - 1
For X = 0 To Y - 1
st = TblDf(X).Connect
If Left(st, 4) = "ODBC" Then
TblDf(X).Connect = sttt
TblDf(X).RefreshLink
Else
If Left(st, 9) = ";DATABASE" Then
TblDf(X).Connect = ";DATABASE=" & App.Path & "\temp.mdb"
TblDf(X).RefreshLink
End If
End If
pb1.Value = X
Next
DB.Close
Wksp.Close
Exit SubErrMsg:
Debug.Print Err.Description
DB.Close
Wksp.Close
解决方案 »
- 求助SQL语句
- 我想转化图片的格式....怎么实现???
- 请教OraDynaset与DataGrid数据绑定的问题!(100分)
- 怎样自动调用WINDOWS的默认编辑器来打开超文本文件?
- 一个端口问题,能进来看一下吗?
- 这个vb题目 求解 我不知道 使得在运行时,在F1、F2中各选一个单选按钮,然后单击"确定"按钮,就可以按照下表把结果显示在文本框中
- 我对多线程不懂,谁能举出一个易懂的多线程例子。比如程序中利用VB的timer控件是否是多线程。
- 请高手指教!文件保护问题
- 在Vb MDI的应用中怎样设置背景窗体?
- 请教各位兄弟,多谢了!!(30分)
- 关于textbox和vsflexgrid控件问题,急切需要高手赐教~
- 如何判断现在是否为第一条记录 ADO
sttt = "ODBC;DSN=" & wooldns & ";SERVER=" & servername & ";UID=" & UNameStr & ";PWD=" & Upass & ";WSID=ZW1;DATABASE=" & wooldb & ""在后边加上这个试试User ID=许仙;Mode=Share Deny None;Jet OLEDB:System database=C:\windows\system32\system.mdw
我测试了 OK
工组文件就会出现没有权限打开该数据库.
On Error Resume Next
Dim res As DAO.Recordset
Dim LocalInfo As DAO.Recordset
Dim servername As String
Dim wooldns As String
Dim wooldb As String
Dim sttt, UNameStr, Upass As String
Dim TblDf As TableDefs
Dim Y As Integer
Dim X As Integer
Dim st As String
Dim AccApp As New Access.Application
AccApp.OpenCurrentDatabase FileName
'以下是更新 LocalInfo表
Set res = CurrentDb.OpenRecordset("Select * From LocaInfo")
res.MoveFirst
res.Edit
res("LOCAPATH").Value = App.Path
res("SERVER").Value = txtServer.Text
res("Database").Value = txtDataBase.Text
res("ODBC").Value = txtDSN.Text
res("UserName").Value = txtSqlUID.Text
res("UserPass").Value = txtSqlPassword.Text
res.Update
res.Close
'以下是刷新LinkTable
Set LocalInfo = CurrentDb().OpenRecordset("locainfo")
servername = LocalInfo!server
wooldns = LocalInfo!odbc
wooldb = LocalInfo!Database
UNameStr = LocalInfo!UserName
If IsNull(LocalInfo!userpass) Or LocalInfo!userpass = "" Then
Upass = ""
Else
Upass = LocalInfo!userpass
End If
LocalInfo.Close
sttt = "ODBC;DSN=" & wooldns & ";SERVER=" & servername & ";UID=" & UNameStr & ";PWD=" & Upass & ";WSID=ZW1;DATABASE=" & wooldb & ""
Set TblDf = DBEngine(0).Databases(0).TableDefs
Y = TblDf.Count
pb1.Value = 0
pb1.Min = 0
pb1.Max = Y - 1
For X = 0 To Y - 1
st = TblDf(X).Connect
If Left(st, 4) = "ODBC" Then
TblDf(X).Connect = sttt
TblDf(X).RefreshLink
Else
If Left(st, 9) = ";DATABASE" Then
TblDf(X).Connect = ";DATABASE=" & App.Path & "\temp.mdb"
TblDf(X).RefreshLink
End If
End If
pb1.Value = X
Next
AccApp.Quit acQuitSaveAll
AccApp.CloseCurrentDatabase
Set AccApp = Nothing
Exit SubErrMsg:
Debug.Print Err.Description
AccApp.CloseCurrentDatabase
Set AccApp = Nothing