cs_PHILOUVB
Messages postés141Date d'inscriptionmardi 18 mars 2003StatutMembreDernière intervention 3 octobre 2010
-
26 mai 2008 à 19:00
cs_PHILOUVB
Messages postés141Date d'inscriptionmardi 18 mars 2003StatutMembreDernière intervention 3 octobre 2010
-
27 mai 2008 à 18:01
Bonjour à tous
Voici mon soucis.
comme je débute sous VB 2005, j'ai voulu créer une base de données au format mdb avant que passer aux bases SQL
J'ai donc créé ma base en m'assurant que celle ci pouvait accepter les valeurs nulles
Lorsque je remplie mes TextBox qui vont ensuite alimenter ma base, pas de soucis. Sauf que si j'ai un seul TextBox vide, je me retrouve avec un message d'erreur.
J'en conclue donc que si l'ensemble de mes zones ne sont pas complétées, je ne peux pas enregistrer.
Lorsque je regarde les propriétés de chaque élément de ma base, "Autoriser la valeur Null" est "True".
Je ne vois pas où peut-être le problème.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 26 mai 2008 à 19:45
Salut
Il y a une différence entre "Null autorisé" et "Autoriser les chaines vides"
"Null autorisé" veut dire que tu pourras écrire la valeur Null (oui, c'est une valeur) dans le champ
"Chaine vide autorisée" veut dire que tu pourras écrire '' (deux ' qui se suivent)
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 27 mai 2008 à 09:33
Bonjour
Une erreur, peux-tu nous mettre le libellé STP.
Car c'est peut être parce que tu as un champ null que ça bug (.GetString(0), si champ null, erreur de cast, DBNull -> String impossible).
Le fer à souder a besoin d'une panne pour fonctionner.
VB (6, .NET1&2), C++, C#.Net1
Mon site
cs_PHILOUVB
Messages postés141Date d'inscriptionmardi 18 mars 2003StatutMembreDernière intervention 3 octobre 2010 27 mai 2008 à 18:01
Voici ce que j'ai marqué
MaCommande.CommandText =
"INSERT INTO Vemo(type,NOM,Prénom,Naissance,Adresse1,Adresse2,CodePostal,Ville,Telephone1,Telephone2,Telephone3,Portable1,Portable2,Portable3,Email1,Email2,Email3) VALUES ('"
& ChoixType &
"','"
& TextNom.Text &
"','"
& TextPrénom.Text &
"','"
& TextNaissance.Text &
"','"
& Textadress1.Text &
"','"
& TextAdress2.Text &
"','"
& TextCP.Text &
"','"
& TextVille.Text &
"','"
& ListAjouTél.Items.Item(0) &
"','"
& ListAjouTél.Items.Item(1) &
"','"
& ListAjouTél.Items.Item(2) &
"','"
& ListAjouPortable.Items.Item(0) &
"','"
& ListAjouPortable.Items.Item(1) &
"','"
& ListAjouPortable.Items.Item(2) &
"','"
& ListAjouEmail.Items.Item(0) &
"','"
& ListAjouEmail.Items.Item(1) &
"','"
& ListAjouEmail.Items.Item(2) &
"')"
MaCommande.ExecuteNonQuery()
Si je remplie tous les TextBox, pas de problème, par contre si l'un des controlbox est vide, j'ai le message suivant :
InvalidArgument=La valeur '0' n'est pas valide pour 'index'.
Nom du paramètre : index
Mon idée était que je pouvais mettre ma première ligne d'instruction et ensuite ne compléter que les zones que je voulais.
Mais à priori, il faudrait que j'adapte ma ligne en fonction des controlbox alimentés ou alors que je mette une valeur (par exemple "---") lorsque le textbox est vide.