OK je viens de le faire mais du coup la commande ObjetCommand1.ExecuteScalar je ne l'ai plus, la je n'ai rien de souligner...
je pige pas il enregistre uniquement le 1er Do While myREADERnoFTP.Read()
OK je viens de le faire mais du coup la commande ObjetCommand1.ExecuteScalar je ne l'ai plus, la je n'ai rien de souligner...
je pige pas il enregistre uniquement le 1er Do While myREADERnoFTP.Read()
j'ai résolu une partie du problème :
j'ai remplacer l'=>*par le nom des champs maintenant ma table se remplit avec le nombre exacte d’élément mais il me copie la ligne 1 autant de fois qu'il fais un "while" pourtant je piège le résultat du myREADERnoFTP et il s’incrémente bien"SELECT * FROM Axes
et lors de l'enregistrement ce n'est pas bon...
voici mon code à jour :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 Public Sub selectAxeRUN() ObjetCommand.CommandText = "SELECT Nom_client, Num_client, Nom_axe, FDC_mini, FDC_maxi, statut, ftp FROM Axes WHERE ftp=No AND statut= @New " ObjetCommand.Parameters.Add("@New", OleDbType.VarChar).Value = "New" Dim noFTPaxes As OleDbDataReader = ObjetCommand.ExecuteReader() Do While noFTPaxes.Read() ObjetCommand1.CommandText = "SELECT Nom_client, Num_client, Nom_axe, FDC_mini, FDC_maxi, statut, ftp FROM Axes1 WHERE ((Nom_client = @Nom_client) AND (Num_client = @Num_client) AND (Nom_axe = @Nom_axe));" ObjetCommand1.Parameters.Add("@Nom_client", OleDbType.VarChar).Value = noFTPaxes.Item(1).ToString() ObjetCommand1.Parameters.Add("@Num_client", OleDbType.VarChar).Value = noFTPaxes.Item(2).ToString() ObjetCommand1.Parameters.Add("@Nom_axe", OleDbType.VarChar).Value = noFTPaxes.Item(3).ToString() Dim noFTPaxesFTP As OleDbDataReader = ObjetCommand1.ExecuteReader() If Not noFTPaxesFTP.HasRows Then ObjetCommand2.CommandText = " INSERT INTO [Axes1] ( Nom_client, Num_client, Nom_axe, FDC_mini, FDC_maxi, statut, ftp ) VALUES ( @Nom_client, @Num_client, @Nom_axe, @FDC_mini, @FDC_maxi, @statut, @ftp );" ObjetCommand2.Parameters.Add("@Nom_client", OleDbType.VarChar).Value = noFTPaxes.Item("Nom_client").ToString() ObjetCommand2.Parameters.Add("@Num_client", OleDbType.VarChar).Value = noFTPaxes.Item("Num_client").ToString() ObjetCommand2.Parameters.Add("@Nom_axe", OleDbType.VarChar).Value = noFTPaxes.Item("Nom_axe").ToString() ObjetCommand2.Parameters.Add("@FDC_mini", OleDbType.VarChar).Value = noFTPaxes.Item("FDC_mini").ToString() ObjetCommand2.Parameters.Add("@FDC_maxi", OleDbType.VarChar).Value = noFTPaxes.Item("FDC_maxi").ToString() ObjetCommand2.Parameters.Add("@statut", OleDbType.VarChar).Value = "AJ" ObjetCommand2.Parameters.Add("@ftp", OleDbType.Boolean).Value = True ObjetCommand2.ExecuteNonQuery() End If noFTPaxesFTP.Close() Loop noFTPaxes.Close() ObjetConnection.Close() End Sub
je sélectionne bien le noFTPaxes.Item("Nom_client").ToString() de la première table pour le ObjetCommand2.CommandText = " INSERT INTO [Axes1]
et non il me met que l'enregistrement 1 de la table axes dans la table axes1 et il me le met 50 fois comme j'ai 50 enregistrement dans la table axes
il te manque
ObjetCommand1.parameters.clear
à côté du
noFTPaxesFTP.Close
ou alors faire un .add avant tout ca et ne faire varier que le .value
explication :
vu que tu n'as qu'une instance pour objetcommand1
au 1er tour tu ajoutes 3 paramètres, au 2ème tour tu en ajoutes 3 autres (donc 6 inclus) etc...
une fois de plus un bon sgbdr comme sql server t'aurais directement jeté avec un message d'erreur explicite mais access n'utilisant pas les noms des paramètres et les associant par ordre laisse faire n'importe quoi sans broncher mais avec le résultat que l'on voit ...
un fois de plus access est à fuir ^^
non c'est pareil j'ai toujours le même enregistrement qui se copie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 Public Sub selectAxeRUN() ObjetCommand.CommandText = "SELECT Nom_client, Num_client, Nom_axe, FDC_mini, FDC_maxi, statut, ftp FROM Axes WHERE ftp=No AND statut= @New " ObjetCommand.Parameters.Add("@New", OleDbType.VarChar).Value = "New" Dim noFTPaxes As OleDbDataReader = ObjetCommand.ExecuteReader() Do While noFTPaxes.Read() ObjetCommand1.CommandText = "SELECT Nom_client, Num_client, Nom_axe, FDC_mini, FDC_maxi, statut, ftp FROM Axes1 WHERE Nom_client = @Nom_client AND Num_client = @Num_client AND Nom_axe = @Nom_axe" ObjetCommand1.Parameters.Add("@Nom_client", OleDbType.VarChar).Value = noFTPaxes.Item(1).ToString() ObjetCommand1.Parameters.Add("@Num_client", OleDbType.VarChar).Value = noFTPaxes.Item(2).ToString() ObjetCommand1.Parameters.Add("@Nom_axe", OleDbType.VarChar).Value = noFTPaxes.Item(3).ToString() Dim noFTPaxesFTP As OleDbDataReader = ObjetCommand1.ExecuteReader() Dim resul As Integer = 0 If Not noFTPaxesFTP.HasRows Then ObjetCommand2.CommandText = " INSERT INTO [Axes1] ( Nom_client, Num_client, Nom_axe, FDC_mini, FDC_maxi, statut, ftp ) VALUES ( @Nom_client, @Num_client, @Nom_axe, @FDC_mini, @FDC_maxi, @statut, @ftp )" ObjetCommand2.Parameters.Add("@Nom_client", OleDbType.VarChar).Value = noFTPaxes.Item("Nom_client").ToString() ObjetCommand2.Parameters.Add("@Num_client", OleDbType.VarChar).Value = noFTPaxes.Item("Num_client").ToString() ObjetCommand2.Parameters.Add("@Nom_axe", OleDbType.VarChar).Value = noFTPaxes.Item("Nom_axe").ToString() ObjetCommand2.Parameters.Add("@FDC_mini", OleDbType.VarChar).Value = noFTPaxes.Item("FDC_mini").ToString() ObjetCommand2.Parameters.Add("@FDC_maxi", OleDbType.VarChar).Value = noFTPaxes.Item("FDC_maxi").ToString() ObjetCommand2.Parameters.Add("@statut", OleDbType.VarChar).Value = "AJ" ObjetCommand2.Parameters.Add("@ftp", OleDbType.Boolean).Value = True ObjetCommand2.ExecuteNonQuery() End If ObjetCommand1.Parameters.Clear() noFTPaxesFTP.Close() Loop noFTPaxes.Close() ObjetConnection.Close() End Sub
sorry oui effectivement.. j'ai la tête un peux chaude ça me prend la tête depuis ce matin...
l’équivalent en bdsql sa donnerait quoi ?
Merci pol63 de ton aide c'est parfait
est ce que mon code et requête serait différent ?
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager