Access 2000, Problème d'Incompatibilité de type alors que je n'ai que des String

dannywilde Messages postés 27 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 30 mars 2009 - 11 juin 2004 à 16:31
dannywilde Messages postés 27 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 30 mars 2009 - 2 juil. 2004 à 11:57
J'ai écrit une macro qui dès que l'on saisie le nom et le prénom, la macro rempli tout les champs du formulaires.

Le problème c'est que j'ai un soucis d'incompatibilité de type alors que je n'ai que des strings.

Les champs dans les tables sont tous de type texte 255 caractères

Donc je sais pas ce qui ne va pas

Voici mon code :

Private Sub Prénom_BeforeUpdate(Cancel As Integer)
Dim varIdent As String, varManager As String, varService As String, varMetier As String
If (Not IsNull(Me![Nom])) Then
If (Not IsNull(Me![Prénom])) Then
c'est la ligne suivante qui m'indique le message d'erreurvarIdent DLookup("Ident", "Base", "Me![Nom] Me![Nom]" And "Me![Prénom] = Me![Prénom]")
If (Not IsNull(varIdent)) Then
Me![Ident] = varIdent
Else
MsgBox "Le champ ident est vide", vbOKOnly, "Erreur"
End IfEnd If
End IfEnd If
End IfEnd If
Me.Refresh
End Sub

Merci

Amicalement votre ;-)
A voir également:

6 réponses

Mooiz Messages postés 128 Date d'inscription mercredi 25 juin 2003 Statut Membre Dernière intervention 8 juillet 2005
11 juin 2004 à 17:10
C'est pas plutot : varIdent DLookup("Ident", "Base", "Me![Nom] Me![Nom] And Me![Prénom] = Me![Prénom]")

si tu passe en paramètre : "Me![Nom] = Me![Nom]" And "Me![Prénom] = Me![Prénom]"
alors c'est normal qu'il te sorte une incompatibilité de types.
"Me![Nom] = Me![Nom]" est une chaine, mais si tu rajoute quelque chose d'autre après les guillemets sans faire de concatenation, ca devient incomprehensible

D'autre part, si tu mets une chaine "Me![Nom] = Me![Nom]", je pense que ca sera toujours vrai (puisque tu compares une variable avec elle même) et tu ne trouvera pas ce que tu cherche (je me trompe peut être, je n'ai jamais utilisé DLookup)
Le membre de gauche devrait être un nom de colonne je pense.

De plus, pour faire des tests sur des string, il faut mettre des apostrophes si j'ai bien compris :
"Colonne = 'Me![Nom]'"

Pour info, j'ai trouvé mes infos ici
0
dannywilde Messages postés 27 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 30 mars 2009
12 juin 2004 à 19:23
Merci beaucoup, en effet pour la comparaison de variable, en fait j'avais changé Me![Nom] = Me![Nom]" pour tester si cela venait de mes variables, au départ c'était Me![Nom]=Nom.

Merci encore de ton aide car j'ai cherché pendant toute une après-midi .

Amicalement votre ;-)
0
dannywilde Messages postés 27 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 30 mars 2009
17 juin 2004 à 13:10
En remplacant l'ancienne ligne par celle-ci, j'obtiens toujours l'erreur d'incompatibilité de type
varIdent DLookup("Ident", "Base", "'Nom' 'Me![Nom]'" And "'Prénom' = 'Me![Prénom]'")
est ce que t'aurais une idée ?
Amicalement votre ;-)
0
dannywilde Messages postés 27 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 30 mars 2009
17 juin 2004 à 13:29
et en remplacant l'ancienne ligne par celle-ci, j'obtiens l'erreur utilisation incorrecte de null
varIdent DLookup("Ident", "Base", "'Nom' 'Me![Nom]' And 'Prénom' = 'Me![Prénom]'")
Je vois toujours pas ce qui cloche ?
Amicalement votre ;-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mooiz Messages postés 128 Date d'inscription mercredi 25 juin 2003 Statut Membre Dernière intervention 8 juillet 2005
17 juin 2004 à 13:44
Une idée ? ca doit pouvoir se trouver :
varIdent DLookup("Ident", "Base", "Nom 'Me![Nom]' And Prénom = 'Me![Prénom]'")

En gros la même chose mais sans les apostrophes autour des noms de colonne
Non testé, donc résultat non garanti !!!
0
dannywilde Messages postés 27 Date d'inscription mercredi 5 juin 2002 Statut Membre Dernière intervention 30 mars 2009
2 juil. 2004 à 11:57
Finalement, voici la solution sue j'ai trouvé:
varCritere "[Nom] '" & Me!Nom & "'" & " And " & "[Prénom] = '" & Me!Prénom & "'"

If (Not IsNull(Me![Nom])) Then
If (Not IsNull(Me![Prénom])) Then
varIdent = DLookup("[Identifiant Ft]", "Base", varCritere)

Merci de ton aide

Amicalement votre ;-)
0
Rejoignez-nous