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()
Version imprimable
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'=>Citation:
*
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 bienCitation:
"SELECT * FROM Axes
et lors de l'enregistrement ce n'est pas bon...
voici mon code à jour :
Code:
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 ?
Code:
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
c'est pareil pour objectcommand2
vous avez donc modifié sans comprendre ce que j'ai dit ...
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 :ccool:
est ce que mon code et requête serait différent ?