Bonjour
J’ai une base créée sur Access 2003 qui fonctionne très bien depuis des
années, configuration plusieurs frontales et 4 bases de tables dans un disque
dur externe, le tout lié.
Mais voila , on me demande de refaire la même chose sur du Visual.
J’ai migré les tables dans une base SQL, pas de problèmes.
J’ai installé Visual Basic 2008 Express et j’aimerais savoir s’il existe
une liste des correspondances entre VBA Access et Vb, savoir s’il faut
travailler avec des Macros, des Modules comme dans Access, si l’on peu créer
des états pour les impressions.
Je suis coincée pour des choses aussi simples que voici :
Private Sub Bouton84_Click()
On Error GoTo finerrfnul:
If IsNull(NOM) Then
msgbox "LE NOM NE PEUT ETRE VIDE!CORRIGEZ OU DETRUISEZ CETTE FICHE"
Exit Sub
End If
DoCmd.OpenForm "FormX"
finerrfnul:
DoCmd.ShowAllRecords
errfnul:
msgbox "Erreur de manipulation"
Resume finerrfnul
End Sub
DoCmd.OpenReport "MonEtat", acViewPreview
DoCmd.OpenReport "MonEtat1", acNormal, ,
"[nom]=[forms]![IMPRESSIONS]![Texte1] or
[Prenom]=[forms]![IMPRESSIONS]![Texte1] and
[TexteB]=[Formulaires]![Forml].[utilisateur]"
Dim X As Integer
X = msgbox("Voulez-vous aussi imprimer l’Etat suivant", vbYesNo + vbQuestion)
If X = vbNo Then Exit Sub
Si l’on peut utiliser de commandes avec des modules comme par exemple
---------------------------------------
Private Sub Cmd_mail_Click()
fIsOutlookRunning
Dim X
X = fHandleFile("mailto:" & Me![E-MAIL], WIN_NORMAL)
End Sub
-------------------------
------------------------------
Private Sub Lien_Click()
getdir = SelectFolder("Sélection classique d'un dossier", WithNetworkFolders)
If Len(getdir) = 0 Then Exit Sub 'user selected cancel
Lien_dossier1 = getdir
End Sub
Private Sub Ouvrir_lien_Click()
DoCmd.SetWarnings False
On Error GoTo ERR_Ouvrir_lien
' getdir = BrowseForFolder(Me, "Select A Directory", Lien_dossier1)
' If Len(getdir) = 0 Then Exit Sub 'user selected cancel
' Lien_dossier1 = getdir
'Variable_string = OpenFile([Lien_dossier1] [1,] [, <Type de fenêtre>] [,
<Type de fichier>] [, <KbBufferLength>] [, <WithPath>)
'Me.Lien_dossier1 = OpenFile(CurrentProject.path, Multi_Sélection, True,
MSOffice, 12, False)
'msgbox "il y a " & nOpenFile & " fichiers sélectionnés"
Dim Réponse As Variant
Dim Variable_string As String
Variable_string = OpenFile(Lien_dossier1, Multi_Sélection, True, MSOffice,
12, True)
Réponse = OpenFileExtend(Variable_string, , OpExecute)
Exit_Ouvrir_lien:
Exit Sub
ERR_Ouvrir_lien:
msgbox "Il n'existe aucun lien@Veuillez en créer un@"
Resume Exit_Ouvrir_lien
DoCmd.SetWarnings True
End Sub
Avec modules :
-------------------------------------------------
Option Compare Database
Option Explicit
Private Type BROWSEINFO
hOwner As Long
pidlRoot As Long
pszDisplayName As String
lpszTitle As String
ulFlags As Long
lpfn As Long
lParam As Long
iImage As Long
End Type
Public Enum Network
WithNetworkFolders = 0
WithoutNetworkFolders = 2
End Enum
Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias
"SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long
Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias
"SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long
Const BIF_RETURNONLYFSDIRS = &H1
Const BIF_USENEWUI = &H40
------------------------------------------
Public Function SelectFolder(Optional Folder As String = "", Optional
NetworkFolders As Network = WithNetworkFolders) As String
Dim X As Long, bi As BROWSEINFO, dwIList As Long
Dim szPath As String, wPos As Integer
If Folder = "" Then Folder = CurrentProject.path
With bi
.hOwner = hWndAccessApp
.lpszTitle = "Sélectionnez votre dossier et cliquez sur OK" & vbCrLf
& Folder
.ulFlags = BIF_RETURNONLYFSDIRS Or BIF_USENEWUI Or NetworkFolders
End With
dwIList = SHBrowseForFolder(bi)
szPath = Folder & Space$(512 - Len(Folder))
X = SHGetPathFromIDList(ByVal dwIList, ByVal szPath)
If X Then
wPos = InStr(szPath, Chr(0))
SelectFolder = Left$(szPath, wPos - 1)
Else
SelectFolder = ""
End If
End Function
Private Sub fermer_Click()
FormsClose
End Sub
Module :
Public Function FormsClose() As Boolean
Dim Frm As AccessObject
For Each Frm In CurrentProject.AllForms
If Frm.IsLoaded Then
If Frm.Name <> "Menu General" Then
DoCmd.Close acForm, Frm.Name
End If
End If
Next Frm
Forms![MENU GENERAL].SetFocus
End Function
S’il faut déclarer des références.
Je vous remercie infiniment pour votre précieuse aide.