Tester si le numero de client existe pour ajouter dans la table fils produit

amylee1984 Messages postés 153 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 20 août 2006 - 8 janv. 2006 à 20:48
amylee1984 Messages postés 153 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 20 août 2006 - 9 janv. 2006 à 13:29
bonjour, j'ai un petit probleme dans l'ajout d'un enregistrement à ma base de données, je m'explique:

j'ai 2 table client(id_clt, nom_clt, tel_clt) et produit(id_produit, id_clt, nom_produit) alors le "id_clt" c'est le clé etrangers dans la table produit ,
le probleme c'est que je veux quand l'utilisateur veu inserer un produit il faut verifier si le client existe ou non . j'ai tapé le code suivant :

Dim dr
As DataRow = Ds1.Tables(1).NewRow

Dim v3()
As DataRow
v3 Ds1.Tables("client").Select("id_clt " & id_clt.Text)

If v3(0).Item(0)
Is id_clt.Text
Then
dr("id_clt") = id_clt.Text
dr("id_produit") = t1.Text
dr("nom_produit") = t2.Text
Ds1.Tables(1).Rows.Add(dr)
dg.DataSource =
Nothing
dg.DataSource = Ds1.Tables(1)

Else
MessageBox.Show("le client n'existe pas", "erreur", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

End
If

il me donne ce message " L'index se trouve en dehors des limites du tableau." sur la ligne
If v3(0).Item(0) Is id_clt.Text Then

Merci à vous

4 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
8 janv. 2006 à 21:04
Normal vu que les index des collections commencent à 1 et non à zéro, donc essaie plutôt :
If v3(0).Item(1)
Is id_clt.Text
Then

_____________________________________________________________________
Avantde poster un message sur le forum, prière de lire ceci :http://www.vbfrance.com/forum.v2.aspx?ID
0
amylee1984 Messages postés 153 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 20 août 2006 3
9 janv. 2006 à 01:45
bonjour , j'ai changer le 0 pas 1 mais il me donne le meme message
Merci pour ta reponse
0
pseudoOM Messages postés 173 Date d'inscription jeudi 3 février 2005 Statut Membre Dernière intervention 30 janvier 2009 1
9 janv. 2006 à 09:21
Essaie peut être avec un record set !

Dim db_base_principale_Objet As Database
Dim rs_Client as Recordset

Set db_base_principale_Objet = OpenDatabase("Chemin de la base", False, False, "password")
Set rs_Client = db_base_principale_Objet.OpenRecordset("Select * from Client", dbOpenSnapshot)
rs_Client.FindFirst "id_clt=" + CStr(id_clt.Text)
If rs_Client.NoMatch Then
MessageBox.Show("le client n'existe pas", "erreur", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

Else
Autre instruction
End If

rs_Client.Close: Set rs_Client = Nothing

db_base_principale_Objet.Close: Set db_base_principale_Objet = Nothing

J'espère que ça t'aidera !

pseudoOM
0
amylee1984 Messages postés 153 Date d'inscription mardi 1 novembre 2005 Statut Membre Dernière intervention 20 août 2006 3
9 janv. 2006 à 13:29
bonjour pseudoOM , merci pour ce bout de code , mais comme tu sais moi je devlope sous vb.net2003 et non pas en vb6 , j'ai jamais utilisé le recordSet et je travail en mode deconecté alors je suis obligé d"utiliser le dataSet, ya pas d'autre solution ? merci bcp et desolé pour le derangement
0
Rejoignez-nous