[VBA] Type de données, #Nom ?
Bonjour,
J'ouvre un formulaire avec DoCmd.OpenForm avec l'option acFormAdd.
Dans ce formulaire, j'ai les champs dépendant txtID, txtDate, txtTitre et txaNote.
Je veux initialiser txtID à partir d'une valeur connue.
Le problème : j'obtiens une erreur "Impossible d'attribuer une valeur à cet objet" quand je passe par txtID.value = str. En passant par txtID.DefaultValue, j'ai le bon résultat (j'ouvre toujours un nouvel enregistrement).
DefaultValue fonctionne... mais tout est convertit en entier.- Si str = "12", c'est OK.
- Si str = "342-42", il met 300!
- Si str = "une vraie chaîne", j'obtiens #Nom ?
Je n'arrive pas m'expliquer pourquoi ça fait ça. Le champ lié est bien un string. Il n'y a ni masque ni formatage sur le champ.
Que regarder d'autres?
Auriez-vous une idée?
Merci!
Caroline
Bout de code:
Code:
DoCmd.OpenForm "frmCreerNote", , , , acFormAdd, , [Forms]![frmMenuAccueil]![lstDatas].Value
Code:
1 2 3 4 5 6 7
| 'Lire les paramètres
If Not IsNull(Me.OpenArgs) Then
Me.txtID.DefaultValue = Me.OpenArgs
Else
MsgBox "Nombre de paramètres invalide!"
Cancel = true
End If |
Source = "tblNotes"
txtID.ControlSource = "IDNote" (IDNote est un string)
DefaultValue: utilisez une expression de chaîne
Trouvé dans l'aide Access :
Propriété Default Value
Citation:
Dans Visual Basic, utilisez une
expression chaîne pour attribuer une valeur à cette propriété. Par exemple, le code suivant définit la valeur « espèces » pour la propriété
DefaultValue d'un contrôle zone de texte nommé MéthodePaiement :
Code:
Forms!frmInvoice!PaymentMethod.DefaultValue = """Cash"""
Quand on a une variable, ça devient :
Code:
Me.txtID.DefaultValue = """" & me.OpenArg & """"