Le grenier Access

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 8 juillet 2010

Recherche de mot entier

Comment trouver un mot entier dans une requête Access ? Par exemple, dans une phrase comme "Bonjour, aujourd'hui, c'est le jour de Noël !", je souhaite vérifier si la phrase contient le mot "jour".

Un critère comme [Le champ] LIKE '*jour*' semble une bonne idée, mais le critère m'extrait les mots Bonjour, Aujourd'hui et Jour. Alors que je ne souhaite extraire que le mot Jour. Une phrase comme "Bonjour, c'est Noël" serait considérée comme valide, et je n'en veux pas. Comment faire ?

Lire la suite...

Qu'est-ce que "Me" en langage VBA ?

Si vous débutez en programmation VBA, vous avez dû voir trainer le mot-clef Me dans plusieurs bouts de code. A quoi sert ce mot-clef ? Quand peut-on l'utiliser ? Quand ne doit-on pas l'employer ?

Lire la suite...

lundi 14 juin 2010

Modifier l'état Majuscules/Minuscules (Caps Lock) du clavier en VBA

Peut-on forcer l'état du clavier en majuscules (ou minuscules), en VBA ?

Lire la suite...

lundi 26 avril 2010

Supprimer tout le code HTML d'une chaîne

J'ai une chaîne de caractères contenant du code HTML. Comment supprimer tout ce code automatiquement ?

Lire la suite...

samedi 20 mars 2010

Marre des concaténations ?

La concaténation, c'est un exercice à connaître en Visual Basic, ça sert tout le temps ! Mais ça donne souvent une syntaxe compliquée à écrire et à debugger, surtout si vous êtes débutant !

A l'aide d'une fonction StringFormat() inspirée du String.Format() de .NET, vous verrez qu'on peut faire bien plus simple. Finis les maux de tête !

Avant

A titre d'exemple, voici un bout de code qui construit une chaîne SQL par concaténations classiques sur un nombre, un texte, une date :

Dim sql As String
sql = "DELETE * FROM [la table] WHERE [champ1] = " & valeur1 _
  & " AND [champ2] = '" & valeur2 _
  & "' AND [champ3] = " & DateUS(valeur3) & ";"

Après

Et la même chose avec StringFormat() :

Dim sql As String
sql = "DELETE * FROM [la table] WHERE [champ1] = {0} AND [champ2] = '{1}' AND [champ3] = {2};"
sql = StringFormat(sql, valeur1, valeur2, DateUS(valeur3));

Vous serez d'accord que la 2ème version est plus facile à lire (donc à mettre au point) : on y voit beaucoup plus clairement le code SQL complet.

Plus de détails ?

Si vous êtes tenté par StringFormat(), plusieurs articles sont disponibles sur self-access.com :

jeudi 18 mars 2010

Fermer tous les modules en une opération

J'ai plein de modules ouverts dans Visual Basic Editor (VBE). Comment les fermer tous rapidement ?

Lire la suite...

mercredi 10 mars 2010

Séquence aléatoire

Question posée sur le forum self-access.com : comment générer automatiquement une séquence aléatoire de la forme 110 23459 875 ? Avec les espaces toujours au même emplacement ?

Lire la suite...

mardi 8 décembre 2009

Lister les pièces jointes Access 2007 en VBA

Dans l'article Gérer les pièces jointes avec Access 2007, vous avez vu comment stocker des pièces jointes dans un fichier Access 2007 au format ACCDB. Voici comment obtenir la liste de ces pièces jointes en VBA.

Lire la suite...

vendredi 10 juillet 2009

Connaître la version d'Access en VBA

Comment connaître, en Visual Basic, la version d'Access installée ?

A partir d'Access 2002

A partir d'Access 2002, vous pouvez utiliser l'une des 2 commandes suivantes :

Access.Version
Application.Version

Avant Access 2002

Avant Access 2002, utilisez plutôt :

SysCmd(acSysCmdAccessVer)
Si vous ciblez des utilisateurs qui ont un grand nombre de versions différentes, il vaut mieux, bien sûr, utiliser cette variante !

Exemple de code

Sub TestVersion()
  MsgBox "Version d'Access : " & SysCmd(acSysCmdAccessVer)
End Sub


Le tableau ci-dessous vous donne les versions "publiques" correspondant aux numéros de versions internes.

Version Equivalent public
12.0 Access 2007
11.0 Access 2003
10.0 Access 2002
9.0 Access 2000
8.0 Access 97

mardi 30 juin 2009

Liste des références

On m'a posé la question récemment : "Quelle est la liste des références à cocher dans Visual Basic Editor, selon la version d'Access ?".

Lire la suite...

- page 1 de 4