FAQ MS-AccessConsultez toutes les FAQ

Nombre d'auteurs : 140, nombre de questions : 926, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireVBADiversDivers Trucs et Astuces

Le paramètre de la ligne de commande pour exécuter une macro est /x start /WAIT msaccess.exe O:\outils\automa~1\autonet.mdb /x Archivage >> %LogFil% 2>Archivage

Créé le 25 octobre 2004  par ARO


Pour tester l'existence d'un lecteur réseau et sa connexion, vous pouvez utiliser
l'objet FileSystemObject de la référence Microsoft Scripting Runtime.


Vous devez donc ajouter cette référence à votre projet.


Exemple d'utilisation :

 
Sélectionnez

Dim oFSO As New FileSystemObject
Dim oDrv As Drive
Dim strLettre As String
strLettre = "Z"
If oFSO.DriveExists(strLettre) Then
    Set oDrv = oFSO.GetDrive(strLettre)
    If oDrv.IsReady Then MsgBox "Le lecteur réseau est disponible"
Else
    MsgBox "Ce lecteur réseau n'est pas configuré sur votre machine"
End If
Mis à jour le 29 août 2006  par Team Access

C'est possible par ODBC.
Voici la manipulation qui fonctionne avec les .fp5, à tester avec les autres :

  • il faut que le fichier soit ouvert dans Filemaker. Aller dans le menu fichier pour partager le fichier ;
  • Il faut déclarer une source ODBC dans le panneau de configuration de Ouindoze en indiquant le fichier ;
  • aller dans Access et lier les tables via ODBC. On les voit alors comme des tables Access.

Attention :
- pour utiliser le lien, il faut que le fichier soit ouvert dans FileMaker ;
- les rubriques texte de plus de 255 caractères seront tronquées après les 255 premiers.

Créé le 25 octobre 2004  par Etienne Bar

Lorsque l'on fait un clic droit sur un fichier Texte (.txt), on a l'option "imprimer" dans le menu contextuel.
Après une recherche dans la base de registre sur le mot-clé "TXT", on trouve ceci :
HKEY_CLASS_ROOT\txtfile\shell\print\command : %SystemRoot%\system32\NOTEPAD.EXE /p %1
Et donc la syntaxe pour imprimer avec la fonction Shell est la suivante :

 
Sélectionnez
Shell "M:\WINNT\NOTEPAD.EXE /p " & strPathTmp & "ArtSansTpsCycle.txt"
Créé le 1er janvier 2005  par Gaël Donat

Dans un module standard, il faut mettre :

 
Sélectionnez
Declare Function PlaySound Lib "winmm.dll" Alias "sndPlaySoundA"  _
        (ByVal lpszSoundName As Any, ByVal uFlags As Long) As Long

 ' Mettre 0 dans le uFlags pour laisser le son se terminer avant que le programme ne reprenne le contrôle
 ' Mettre 1 dans le uFlags pour que le programme reprenne le contrôle immédiatement après le début du playback
 ' Mettre 0& (Null) dans le lpszSoundName ET 1 dans le uFlags pour arrêter le Playback en cours

Dans le formulaire de démarrage, il faut mettre :

 
Sélectionnez
Private Sub Form_Close()
    PlaySound 0&, 1
End Sub

Private Sub Form_Load()
    PlaySound "LePathDuFichier.wav", 1
End Sub
Créé le 25 octobre 2004  par Maxence HUBICHE

Lien : Comment jouer un son MIDI dans une application ?

Il suffit d'utiliser la ligne suivante :

 
Sélectionnez
DBEngine.Idle dbRefreshCache
Créé le 25 octobre 2004  par Maxence HUBICHE
 
Sélectionnez
Option Compare Database
Option Explicit

Public Declare Function GetLocaleInfo Lib "kernel32" Alias "GetLocaleInfoA" (ByVal Locale As Long,  _
                     ByVal LCType As Long, ByVal lpLCData As String, ByVal cchData As Long) As Long
Public Const LOCALE_USER_DEFAULT = &H400
Public Enum LOCALES
    LOCALE_ICENTURY = &H24             '  century format specifier
    LOCALE_ICOUNTRY = &H5              '  country code
    LOCALE_ICURRDIGITS = &H19          '  # local monetary digits
    LOCALE_ICURRENCY = &H1B            '  positive currency mode
    LOCALE_IDATE = &H21                '  short date format ordering
    LOCALE_IDAYLZERO = &H26            '  leading zeros in day field
    LOCALE_IDEFAULTCODEPAGE = &HB      '  default code page
    LOCALE_IDEFAULTCOUNTRY = &HA       '  default country code
    LOCALE_IDEFAULTLANGUAGE = &H9      '  default language id
    LOCALE_IDIGITS = &H11              '  number of fractional digits
    LOCALE_IINTLCURRDIGITS = &H1A      '  # intl monetary digits
    LOCALE_ILANGUAGE = &H1             '  language id
    LOCALE_ILDATE = &H22               '  long date format ordering
    LOCALE_ILZERO = &H12               '  leading zeros for decimal
    LOCALE_IMEASURE = &HD              '  0 = metric, 1 = US
    LOCALE_IMONLZERO = &H27            '  leading zeros in month field
    LOCALE_INEGCURR = &H1C             '  negative currency mode
    LOCALE_INEGSEPBYSPACE = &H57       '  mon sym sep by space from neg amt
    LOCALE_INEGSIGNPOSN = &H53         '  negative sign position
    LOCALE_INEGSYMPRECEDES = &H56      '  mon sym precedes neg amt
    LOCALE_IPOSSEPBYSPACE = &H55       '  mon sym sep by space from pos amt
    LOCALE_IPOSSIGNPOSN = &H52         '  positive sign position
    LOCALE_IPOSSYMPRECEDES = &H54      '  mon sym precedes pos amt
    LOCALE_ITIME = &H23                '  time format specifier
    LOCALE_ITLZERO = &H25              '  leading zeros in time field
    LOCALE_NOUSEROVERRIDE = &H80000000 '  do not use user overrides
    LOCALE_S1159 = &H28                '  AM designator
    LOCALE_S2359 = &H29                '  PM designator
    LOCALE_SABBREVCTRYNAME = &H7       '  abbreviated country name
    LOCALE_SABBREVDAYNAME1 = &H31      '  abbreviated name for Monday
    LOCALE_SABBREVDAYNAME2 = &H32      '  abbreviated name for Tuesday
    LOCALE_SABBREVDAYNAME3 = &H33      '  abbreviated name for Wednesday
    LOCALE_SABBREVDAYNAME4 = &H34      '  abbreviated name for Thursday
    LOCALE_SABBREVDAYNAME5 = &H35      '  abbreviated name for Friday
    LOCALE_SABBREVDAYNAME6 = &H36      '  abbreviated name for Saturday
    LOCALE_SABBREVDAYNAME7 = &H37      '  abbreviated name for Sunday
    LOCALE_SABBREVLANGNAME = &H3       '  abbreviated language name
    LOCALE_SABBREVMONTHNAME1 = &H44    '  abbreviated name for January
    LOCALE_SABBREVMONTHNAME10 = &H4D   '  abbreviated name for October
    LOCALE_SABBREVMONTHNAME11 = &H4E   '  abbreviated name for November
    LOCALE_SABBREVMONTHNAME12 = &H4F   '  abbreviated name for December
    LOCALE_SABBREVMONTHNAME13 = &H100F
    LOCALE_SABBREVMONTHNAME2 = &H45    '  abbreviated name for February
    LOCALE_SABBREVMONTHNAME3 = &H46    '  abbreviated name for March
    LOCALE_SABBREVMONTHNAME4 = &H47    '  abbreviated name for April
    LOCALE_SABBREVMONTHNAME5 = &H48    '  abbreviated name for May
    LOCALE_SABBREVMONTHNAME6 = &H49    '  abbreviated name for June
    LOCALE_SABBREVMONTHNAME7 = &H4A    '  abbreviated name for July
    LOCALE_SABBREVMONTHNAME8 = &H4B    '  abbreviated name for August
    LOCALE_SABBREVMONTHNAME9 = &H4C    '  abbreviated name for September
    LOCALE_SCOUNTRY = &H6              '  localized name of country
    LOCALE_SCURRENCY = &H14            '  local monetary symbol
    LOCALE_SDATE = &H1D                '  date separator
    LOCALE_SDAYNAME1 = &H2A            '  long name for Monday
    LOCALE_SDAYNAME2 = &H2B            '  long name for Tuesday
    LOCALE_SDAYNAME3 = &H2C            '  long name for Wednesday
    LOCALE_SDAYNAME4 = &H2D            '  long name for Thursday
    LOCALE_SDAYNAME5 = &H2E            '  long name for Friday
    LOCALE_SDAYNAME6 = &H2F            '  long name for Saturday
    LOCALE_SDAYNAME7 = &H30            '  long name for Sunday
    LOCALE_SDECIMAL = &HE              '  decimal separator
    LOCALE_SENGCOUNTRY = &H1002        '  English name of country
    LOCALE_SENGLANGUAGE = &H1001       '  English name of language
    LOCALE_SGROUPING = &H10            '  digit grouping
    LOCALE_SINTLSYMBOL = &H15          '  intl monetary symbol
    LOCALE_SLANGUAGE = &H2             '  localized name of language
    LOCALE_SLIST = &HC                 '  list item separator
    LOCALE_SLONGDATE = &H20            '  long date format string
    LOCALE_SMONDECIMALSEP = &H16       '  monetary decimal separator
    LOCALE_SMONGROUPING = &H18         '  monetary grouping
    LOCALE_SMONTHNAME1 = &H38          '  long name for January
    LOCALE_SMONTHNAME10 = &H41         '  long name for October
    LOCALE_SMONTHNAME11 = &H42         '  long name for November
    LOCALE_SMONTHNAME12 = &H43         '  long name for December
    LOCALE_SMONTHNAME2 = &H39          '  long name for February
    LOCALE_SMONTHNAME3 = &H3A          '  long name for March
    LOCALE_SMONTHNAME4 = &H3B          '  long name for April
    LOCALE_SMONTHNAME5 = &H3C          '  long name for May
    LOCALE_SMONTHNAME6 = &H3D          '  long name for June
    LOCALE_SMONTHNAME7 = &H3E          '  long name for July
    LOCALE_SMONTHNAME8 = &H3F          '  long name for August
    LOCALE_SMONTHNAME9 = &H40          '  long name for September
    LOCALE_SMONTHOUSANDSEP = &H17      '  monetary thousand separator
    LOCALE_SNATIVECTRYNAME = &H8       '  native name of country
    LOCALE_SNATIVEDIGITS = &H13        '  native ascii 0-9
    LOCALE_SNATIVELANGNAME = &H4       '  native name of language
    LOCALE_SNEGATIVESIGN = &H51        '  negative sign
    LOCALE_SPOSITIVESIGN = &H50        '  positive sign
    LOCALE_SSHORTDATE = &H1F           '  short date format string
    LOCALE_STHOUSAND = &HF             '  thousand separator
    LOCALE_STIME = &H1E                '  time separator
    LOCALE_STIMEFORMAT = &H1003        '  time format string
End Enum

Function GetLocale(ByVal TypeLocal As LOCALES) As Variant
    Dim sBuffer As String
    Dim nRet    As Long
   
    sBuffer = String(256, 0)
    nRet = GetLocaleInfo(LOCALE_USER_DEFAULT, TypeLocal, sBuffer, Len(sBuffer))
   
    If nRet > 0 Then
        GetLocale = Left(sBuffer, nRet - 1)
    Else
        GetLocale = ""
    End If
   
End Function

Pour récupérer par exemple le style de date courte, il suffira de faire appel à la fonction GetLocale, en lui passant le paramètre LOCALE_SSHORTDATE.

Créé le 25 octobre 2004  par Maxence HUBICHE

Mettre en référence : Microsoft Scripting Runtime.

 
Sélectionnez
Dim fso As New FileSystemObject, Repertoire As Folder
Set Repertoire = fso.GetSpecialFolder(SystemFolder)
Créé le 25 octobre 2004  par Bidou
 
Sélectionnez
Function ChercherFichier(nomFichier As String) As Boolean
 ' nomFichier : nom du fichier cherché qui est passé en paramètre d'appel de la fonction
With Application.FileSearch
        .lookin = "D:\Sauvegarde\Programmation\Developpez.com\EditeurFaq"
        .FileName = nomFichier
        .filetype = msoFileTypeAllFiles
        .Searchsubfolders = True
        If .Execute Then
            ChercherFichier = True
        Else
            ChercherFichier = False
        End If
End With
End Function

Pour utiliser la constante msoFileTypeAllFiles, il faut référencer la bibliothèque Micosoft Office x.x Object library.

Créé le 25 octobre 2004  par Cupidon

Pour jouer un fichier .mid, il faut utiliser les API. Dans un module :

 
Sélectionnez
Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
Public Sub JouerMusique(ByVal Fichier As String)
    mciExecute ("play " & Fichier)
End Sub

Private Sub ArreterMusique(ByVal Fichier As String)
    mciExecute ("stop " & Fichier)
End Sub

Pour lancer la lecture :

 
Sélectionnez
JouerMusique("d:\town.mid")

Pour arrêter :

 
Sélectionnez
ArreterMusique("d:\town.mid")
Créé le 10 mai 2005  par Tofalu

Lien : Peut-on ouvrir des fichiers .wav avec Access ?

Dans un module :

 
Sélectionnez
Declare Sub Sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)

Puis dans le code :

 
Sélectionnez
For i=1 to 1000
beep
sleep(500)
next i
Créé le 10 mai 2005  par Tofalu

Il faut utiliser l'objet VBE :

 
Sélectionnez
Application.VBE.MainWindow.Visible = False
Créé le 10 mai 2005  par Tofalu
 
Sélectionnez
Public Declare Function GetKeyState Lib "user32" (ByVal iVirtualKey As Integer) As Long

Public Function Is_Majuscule() As Boolean
Is_Majuscule = (&H1 And GetKeyState(vbKeyCapital)) <> 0
End Function

La fonction Is_Majuscule renvoie true si le clavier est en majuscules, false sinon.

Créé le 1er janvier 2005  par Tofalu

Lien : Comment activer/désactiver le Caps Lock du clavier ?

 
Sélectionnez
Private Type KeyboardBytes
     kbByte(0 To 255) As Byte
End Type
Enum apiOnOff
    apiOn = 1
    apiOff = 0
End Enum
Dim kbArray As KeyboardBytes

Private Declare Function GetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long
Private Declare Function SetKeyboardState Lib "user32" (kbArray As KeyboardBytes) As Long

Private Sub ChangerCapsLock(v As apiOnOff)
    GetKeyboardState kbArray
    kbArray.kbByte(&H14) = v
    SetKeyboardState kbArray
End Sub

Utiliser sous la forme pour désactiver :

 
Sélectionnez
    ChangerCapsLock apiOff

Ou, pour activer :

 
Sélectionnez
    ChangerCapsLock apiOn
Créé le 10 mai 2005  par Maxence HUBICHE

Au moyen d'un type de données qui encapsule un tableau.
Exemple avec une fonction de décomposition de chaîne en tableau.
La fonction stringTab() renvoie bien un tableau.

 
Sélectionnez

Option Explicit

Type typTabResult
  items() As String * 1
End Type

Function stringTab(ByVal str) As typTabResult

Dim i As Integer
For i = 1 To Len(str)
    ReDim Preserve stringTab.items(i)
    stringTab.items(i) = Mid(str, i, 1)
Next i

End Function


Function TestTab()

Dim monTab As typTabResult
Dim i As Integer

monTab = stringTab("Hello World !")

For i = 1 To UBound(monTab.items)
    Debug.Print i, monTab.items(i)
Next i

End Function
Créé le 14 mai 2006  par cafeine


Pour faire l'équivalent du clic droit --> insérer objet

 
Sélectionnez

LeContrôleOLE.SetFocus
Docmd.RunCommand acCmdInsertObject


Pour éviter l'erreur si l'utilisateur sélectionne le bouton Annuler il faut mettre une gestion d'erreur.

Voir on error dans l'aide.

Le plus simple mais pas le meilleur, annuler tous les messages d'erreur :

 
Sélectionnez

On error resume next
LeContrôleOLE.SetFocus
Docmd.RunCommand acCmdInsertObject


Sinon utilisez on error goto pour renvoyer les erreurs vers une étiquette et les traiter en fonction de la valeur de Err.Number.

Créé le 14 octobre 2007  par Arkham46

Pour afficher le clavier virtuel, tapez osk dans Exécuter du menu Démarrer.
Pour réaliser la même chose en VBA, voici le code :

Ce code permet d'afficher le clavier virtuel sur un clic droit dans une zone de texte :

 
Sélectionnez
Private Sub LaTextBox_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Me.ShortcutMenu = False
    If Button = acRightButton Then
        Shell "osk.exe"
    End If
End Sub

Ce code ne fonctionne pas sous Access 2007, pour réaliser la même chose avec la version 2007 il vous faut utiliser les API :

 
Sélectionnez
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Private Sub LaTextBox_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Me.ShortcutMenu = False
    If Button = acRightButton Then
        ShellExecute Me.hwnd, "open", "osk.exe", "", "", 1
    End If
End Sub
Créé le 31 mars 2008  par Philippe JOCHMANS, cafeine

Lien : Comment ouvrir un fichier HTML, Word, PDF ou autre en utilisant l'exécutable associé ?
Lien : Que faire quand l'API ShellExecute ne fonctionne pas ?

  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2013 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.