私は、以下の2行に基づいてフォアグラウンドにアクセスするためのアクセスデータベースを取得しようとしています。私はなぜそれが動作していないか、またはこれを行うためのより良い方法があるかどうかはわかりません。現在のAccess DBをVBA経由でフォアグラウンドに移行するにはどうすればよいですか?
私が読んだから、これは動作するはずです:
Access.Visible = False
Access.Visible = True
しかし、実際には前にデータベースをもたらすことはありません。詳細は
編集:
Private Sub Form_Open(Cancel As Integer)
getStrUserName = Environ("username")
dbName = "myDB.accdb" ' database name
versionChckDB = "versionCheckDB.accdb" ' version check db name
strServer = "C:\My\Path\to\Server" ' server location string
strDesktop = "C:\My\Path\to\Local" ' desktop location string
strVersionCheck = "C:\My\Path\to\Version" ' version check location
Static acc As Access.Application
Dim db As DAO.Database
Dim strDbName As String
If FileLocked(strDesktop & "\" & versionChckDB) Then
Dim objAccess As Access.Application
Set objAccess = GetObject(strDesktop & "\" & versionChckDB)
objAccess.Application.Quit acQuitSaveAll
Set objAccess = Nothing
DoCmd.OpenForm "frmMainMenu"
DoCmd.RunCommand acCmdAppMaximize
Access.Visible = False
Access.Visible = True
GoTo exitSub
Else
strDbName = strDesktop & "\" & versionChckDB
Set acc = New Access.Application
acc.Visible = True
Set db = acc.DBEngine.OpenDatabase(strDbName, False, False)
acc.OpenCurrentDatabase strDbName
End If
'db.Close
exitSub:
Call SetForegroundWindow(Application.hWndAccessApp) ' bringing access DB to foreground
End Sub
? 'SetForegroundWindow(Application.hWndAccessApp)'は、 'Form_Open'コードを含むものをフォアグラウンドウィンドウにする必要があります。それはあなたが欲しいものですか? – HansUp
@ HansUp私は現在のデータベース(コードの観点から)がフォアグラウンドに来るようにしたい。 –
(Set acc = New Access.Application'を使用する代わりに)このように他のデータベースを開くとどうなりますか? (MSACCESS.EXE "&" "" "" "&strDbName&" "" "' – HansUp