Bonjour,
Est-il possible d'ouvrir un formulaire situé dans une autre base ?
Si oui, quel est le code associé svp ?
Merci d'avance
Bonjour,
Est-il possible d'ouvrir un formulaire situé dans une autre base ?
Si oui, quel est le code associé svp ?
Merci d'avance
Hello,
une recherche dans laavec les mots clés "formulaire autre base" donne le lien suivant :
http://access.developpez.com/faq/?pa...ss#OuvrBddForm
Cycle de vie d'un bon programme :
1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise
Pas de question technique par MP, je ne réponds pas
Mes ouvrages :
Migrer les applications VBA Access et VBA Excel vers la Power Platform
Apprendre à programmer avec Access 2016, Access 2019 et 2021
Apprendre à programmer avec VBA Excel
Prise en main de Dynamics 365 Business Central
Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
Pensez à consulter la FAQ Excel et la FAQ Access
Derniers tutos
Excel et les paramètres régionaux
Les fichiers Excel binaires : xlsb,
Autres tutos
Bonjour,
Merci pour ce lien.
j'ai donc copier ce code dans module "module1" et adapté bien sur, le code apporté à la commande.
http://access.developpez.com/faq/?pa...ss#OuvrBddForm
lorsque je j'éxecute la commande, 2 fenetres s'ouvrent :
1) la base
2) le formulaire
mais les fenêtres sont vide et le code suivant apparaît :
une idée du problème ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Error#:91 Variable objet ou variable de bloc With non definie![]()
Hello,
en principe, une ligne de code est surlignée en jaune une fois que tu cliques sur le OK du message d'erreur, pourrait-on avoir la ligne incriminée ainsi que les lignes de code de la fonction/procedure en question stp ?
Cycle de vie d'un bon programme :
1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise
Pas de question technique par MP, je ne réponds pas
Mes ouvrages :
Migrer les applications VBA Access et VBA Excel vers la Power Platform
Apprendre à programmer avec Access 2016, Access 2019 et 2021
Apprendre à programmer avec VBA Excel
Prise en main de Dynamics 365 Business Central
Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
Pensez à consulter la FAQ Excel et la FAQ Access
Derniers tutos
Excel et les paramètres régionaux
Les fichiers Excel binaires : xlsb,
Autres tutos
oui, en principe, j'ai remarqué que le code apparaît à l'écrant et que la première erreur et surligné en jaune, mais pas pour pour ce cas.
l'erreur 91 sité plus haut apparaît dasn un msgbox. D'ailleur, elle n'est visible que si je ferme les fenêtre vide.
j'ai peut être oublié quelque chose.
la commande via le bouton (sur click) fonctionne car si le nom du formulaire comporte un erreur, j'obtiens un message
Code : Sélectionner tout - Visualiser dans une fenêtre à part Call OpenRemoteForm "chemin_de_ma_base\base.mdb", "Form_a_ouvrir")lorsque je clique sur mon bouton, il faut mettre un code qui appelle le Module, non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70 Private Declare Function apiSetForegroundWindow Lib "user32" _ Alias "SetForegroundWindow" _ (ByVal hwnd As Long) _ As Long Private Declare Function apiShowWindow Lib "user32" _ Alias "ShowWindow" _ (ByVal hwnd As Long, _ ByVal nCmdShow As Long) _ As Long Private Const SW_MAXIMIZE = 3 Private Const SW_NORMAL = 1 Function fOpenRemoteForm(strMDB As String, _ strForm As String, _ Optional intView As Variant) _ As Boolean Dim objAccess As Access.Application Dim lngRet As Long On Error GoTo fOpenRemoteForm_Err If IsMissing(intView) Then intView = acViewNormal If Len(Dir(strMDB)) > 0 Then Set objAccess = New Access.Application With objAccess lngRet = apiSetForegroundWindow(.hWndAccessApp) lngRet = apiShowWindow(.hWndAccessApp, SW_MAXIMIZE) 'le premier appel à ShowWindow semble rester sans effet lngRet = apiShowWindow(.hWndAccessApp, SW_MAXIMIZE) .OpenCurrentDatabase strMDB .DoCmd.OpenForm strForm, intView Do While Len(.CurrentDb.Name) > 0 DoEvents Loop End With End If fOpenRemoteForm_Exit: On Error Resume Next objAccess.Quit Set objAccess = Nothing Exit Function fOpenRemoteForm_Err: fOpenRemoteForm = False Select Case err.Number Case 7866: 'mdb ouverte en mode exclusif MsgBox "The database you specified " & vbCrLf & strMDB & _ vbCrLf & "is currently open in exclusive mode. " & vbCrLf _ & vbCrLf & "Please reopen in shared mode and try again", _ vbExclamation + vbOKOnly, "Could not open database." Case 2102: 'ce formulaire n'existe pas MsgBox "The Form \'" & strForm & _ "\' doesn\'t exist in the Database " _ & vbCrLf & strMDB, _ vbExclamation + vbOKOnly, "Form not found" Case 7952: 'l'utilisateur a fermer la base de données fOpenRemoteForm = True Case Else: MsgBox "Error#: " & err.Number & vbCrLf & err.DESCRIPTION, _ vbCritical + vbOKOnly, "Runtime error" End Select Resume fOpenRemoteForm_Exit End Function Dans le module que j'ai appelé "Module1", j'ai copié ce code
Partager