Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

ajouter un enregistrement avec variable

13 réponses
Avatar
miofans
Bonjour,

ci dessous mon code avec lequel je souhaite ajouter des enregistrements suplementaires dans une table.
le probleme que je rencontre c'est que je n'arrive pas à ajouter une donnée variable ici AA

Sub ouvrir_table()
Dim AA As Integer
DoCmd.OpenTable "essai"
DoCmd.SetWarnings False
For i = 1 To 10
AA = 10 + i
mysql = "INSERT INTO essai (article) VALUES (+AA+)"
DoCmd.RunSQL mysql
Next i
DoCmd.Close
DoCmd.SetWarnings True
End Sub



j'ai fait plusieurs testes avc "AA" et autres mais rien à faire.

est ce que vous pouvez m'aider,

merci d'avance ,

miofans

3 réponses

1 2
Avatar
Michel__D
Bonjour,

miofan a écrit :
miofans a écrit le 05/07/2010 à 00h42 :
miofans a écrit le 04/07/2010 à 23h15 :
Michel__D a écrit le 04/07/2010 à 22h27 :
Re,

miofans a écrit :
Michel__D a écrit le 04/07/2010 à 11h36 :
Bonjour,










[...]

comment je fait pour récuperer toutes les valeurs de la premiere
ligne
d'une
table 1 ?







Ceci ne veut rien dire, précise ta pensée, tout le reste en
découlera

extraire une valeur bien précise pour correction ou utilisation
comme
variable ?
boucle 2
modifier quelques valeurs (je sais faire),
ensuite les coller dans une autre table 2 (je viens d'avoir la
réponse)
cela un certain nombre de fois en fonction d'une valeur dans la 1°
ligne de la table 1
avec une boucle for ..to... next ... (je sais faire)
next 2
next 1 ( je prend la 2° ligne et ainsi de suite)

Merci pour votre aide
miofan







PS: Une réponse ci-dessous que j'ai déjà fourni et qui
pourrait te servir :

Une autre alternative (nécessite l'ajout de la
référence
aux objets ADO)

Sub RequeteADO()
Dim oCn1 As ADODB.Connection
Dim oRst As New ADODB.Recordset
Dim sSQL As String

sSQL = "SELECT IdEenr, [SOMME] FROM LaTable WHERE IdEnr = 5;"

Set oCn1 = CurrentProject.Connection

oRst.Open sSQL, oCn1, adOpenForwardOnly, adLockReadOnly
If Not oRst.EOF Then
nValeur = oRst!SOMME
End If

oRst.Close
oCn1.Close
Set oRst = Nothing
Set oCn1 = Nothing
End Sub

PS:A adapter bien sur.





Bonjour,

merci pour ta réponse,

je précise et je fais plus simple
1° je souhaite récuperer une des valeurs d'un champ de la 1°
ligne de la table
1 pour faire une boucle (ex:8)
2° je souhaite récuperer toutes les valeurs des champs de la

ligne (table
1)
3° je souhaite modifier certaines valeurs
4° je souhaite coller ces valeurs sur la 1° ligne dans une nouvelle
table 2
5° je souhaite faire l'opération 2,3 et 4 ==>8 fois dans la
boucle afin d'avoir
8 lignes (8 pour l'exemple)
6° je souhaite refaire la boucle en passant à la 2° ligne de
ma
table 1

d'ou ma question comment je fais pour extraire les valeurs de la ligne 1








de
la
table 1 dans des variables,
puis de la ligne 2 etc...

Merci pour votre aide,

Miofan






Je persiste mais les extraits ci-dessous de tes demandes ne veulent rien






dire
:

"récuperer une des valeurs d'un champ de la 1° ligne de la
table 1" et
"récuperer toutes les valeurs des champs de la 1° ligne
(table
1)" et
"coller ces valeurs sur la 1° ligne dans une nouvelle table 2"

car les données ne sont pas forcément stocké dans un
ordre
défini, c'est à toi
qu'il revient de le définir d'ou le fait que l'on ne puisse pas
répondre à tes
questions ne connaissant pas l'ordre dans lesquelles tu souhaite les
extraire.

PS: Mais tu possède avec le code que j'ai fourni, un début de
solution parmi d'autre.




bonsoir, voila ce que j'ai bricolé:

Sub ouvrir_table2()
Dim sSQL As String
DoCmd.SetWarnings False
sSQL = "SELECT N°, [RefPF] FROM TPlandeproduction WHERE N° >>> 5;"
'mySQL = "SELECT N°, [RefPF] FROM 'T Plan de production' WHERE N°
= 5;"
For i = 1 To 20
mySQL = "Insert into Données (RefPF,TpsMachine) Values ('"
& RefPF & "',7);"
DoCmd.RunSQL mySQL
Next i
DoCmd.Close
DoCmd.SetWarnings True
End Sub

avec la ligne => mySQL = "Insert into Données
(RefPF,TpsMachine)
Values ('" & RefPF & "',7);"
j'arrive à ecrire une ligne suplémentaire dans la table
Données, la valeur 7 est bien enregistrée mais la valeur RefPF
n'est pas enregistrées.

Ou est l'erreur ? je suppose dans l'extraction !

Merci pour vote aide

Miofans



bonsoir,

je vous informe au fur et à mesure que j'avance, voila ce que j'arive
à faire:

Sub ouvrir_table2()
Dim sSQL As String
DoCmd.SetWarnings False
For i2 = 1 To 5
compteur = DLookup("TpsMachine", "TPlandeproduction",
"N°= " & i2)
TpsMachSolde = compteur
For i = 1 To compteur
mySQL = "Insert into Données (TpsMachine) Values ('" &
TpsMachSolde & "');"
DoCmd.RunSQL mySQL
TpsMachSolde = TpsMachSolde - 1
Next i
Next i2
DoCmd.Close
DoCmd.SetWarnings True
End Sub

j'ai reussi à extraire ma valeur pour faire ma 1° boucle,
maintenant je doit remplacer la valeur 5 de la boucle 'for i2 = 1 to 5' par


le
nombre d'enregistrement dans la table "TPlandeproduction"

comment compter le nombre d'enregistrement dans une table ?
comment extraire plusieurs valeurs dans la ligne 1 de la table
"TPlandeproduction" ?

je cherche encore avec vos proposition mais por l'instant je n'y arrive pas.

merci encore de votre aide,

Miofans


Bonjour,

j'avance encore un peu plus, j'ai touver la fonction dcount pour compter les
ligne de ma table,
j'ai donc ceci qui fonctionne:

Sub ouvrir_table()
'cette macro fonctionne
Dim sSQL As String
DoCmd.SetWarnings False
compteur2 = DCount("N°", "TPlandeproduction")
For i2 = 1 To compteur2
MsgBox "#" & RefPF & "#" & Komponen & "#"
compteur = DLookup("TpsMachine", "TPlandeproduction", "N°= " & i2)
TpsMachSolde = compteur
For i = 1 To compteur
RefPF = 1698000 + i
Komponen = 5555 + i
mySql = "Insert into Données (RefPF,Komponen,TpsMachine) Values ('" & RefPF &
"','" & Komponen & "','" & TpsMachSolde & "');"
MsgBox "#" & RefPF & "#" & Komponen & "#"
DoCmd.RunSQL mySql
TpsMachSolde = TpsMachSolde - 1
Next i
Next i2
DoCmd.Close
DoCmd.SetWarnings True
End Sub

il me reste donc à trouver comment faire pour extraire plusieurs valeurs pour
une ligne bien specifique. Il y à la fonction "DLoopkup" mais elle n'extrait
qu'une valeur alors que j'ai besoin d'extraire plusieurs valeurs.

n'esiter pas à me donner un coup de main car en ce moment je passe plusieurs
heures par jour sur ce probleme. Si vous pouvez m'aider également à nettoyer mon
programme de ses imperfections.

Merci à vous tous,

Miofans



Continu, tu es sur la bonne voie.
Avatar
miofans
Michel__D a écrit le 05/07/2010 à 18h46 :
Bonjour,

miofan a écrit :
miofans a écrit le 05/07/2010 à 00h42 :
miofans a écrit le 04/07/2010 à 23h15 :
Michel__D a écrit le 04/07/2010 à 22h27 :
Re,

miofans a écrit :
Michel__D a écrit le 04/07/2010 à 11h36 :
Bonjour,












[...]

comment je fait pour récuperer toutes les valeurs de la premiere
ligne
d'une
table 1 ?








Ceci ne veut rien dire, précise ta pensée, tout le reste en
découlera

extraire une valeur bien précise pour correction ou utilisation
comme
variable ?
boucle 2
modifier quelques valeurs (je sais faire),
ensuite les coller dans une autre table 2 (je viens d'avoir la
réponse)
cela un certain nombre de fois en fonction d'une valeur dans la 1°
ligne de la table 1
avec une boucle for ..to... next ... (je sais faire)
next 2
next 1 ( je prend la 2° ligne et ainsi de suite)

Merci pour votre aide
miofan








PS: Une réponse ci-dessous que j'ai déjà fourni et
qui
pourrait te servir :

Une autre alternative (nécessite l'ajout de la
référence
aux objets ADO)

Sub RequeteADO()
Dim oCn1 As ADODB.Connection
Dim oRst As New ADODB.Recordset
Dim sSQL As String

sSQL = "SELECT IdEenr, [SOMME] FROM LaTable WHERE IdEnr = 5;"

Set oCn1 = CurrentProject.Connection

oRst.Open sSQL, oCn1, adOpenForwardOnly, adLockReadOnly
If Not oRst.EOF Then
nValeur = oRst!SOMME
End If

oRst.Close
oCn1.Close
Set oRst = Nothing
Set oCn1 = Nothing
End Sub

PS:A adapter bien sur.






Bonjour,

merci pour ta réponse,

je précise et je fais plus simple
1° je souhaite récuperer une des valeurs d'un champ de la

ligne de la table
1 pour faire une boucle (ex:8)
2° je souhaite récuperer toutes les valeurs des champs de la

ligne (table
1)
3° je souhaite modifier certaines valeurs
4° je souhaite coller ces valeurs sur la 1° ligne dans une
nouvelle
table 2
5° je souhaite faire l'opération 2,3 et 4 ==>8 fois dans la
boucle afin d'avoir
8 lignes (8 pour l'exemple)
6° je souhaite refaire la boucle en passant à la 2° ligne
de
ma
table 1

d'ou ma question comment je fais pour extraire les valeurs de la ligne 1












de
la
table 1 dans des variables,
puis de la ligne 2 etc...

Merci pour votre aide,

Miofan







Je persiste mais les extraits ci-dessous de tes demandes ne veulent rien









dire
:

"récuperer une des valeurs d'un champ de la 1° ligne de la
table 1" et
"récuperer toutes les valeurs des champs de la 1° ligne
(table
1)" et
"coller ces valeurs sur la 1° ligne dans une nouvelle table
2"

car les données ne sont pas forcément stocké dans un
ordre
défini, c'est à toi
qu'il revient de le définir d'ou le fait que l'on ne puisse pas
répondre à tes
questions ne connaissant pas l'ordre dans lesquelles tu souhaite les
extraire.

PS: Mais tu possède avec le code que j'ai fourni, un début de
solution parmi d'autre.





bonsoir, voila ce que j'ai bricolé:

Sub ouvrir_table2()
Dim sSQL As String
DoCmd.SetWarnings False
sSQL = "SELECT N°, [RefPF] FROM TPlandeproduction WHERE N°
>>> 5;"
'mySQL = "SELECT N°, [RefPF] FROM 'T Plan de production' WHERE

= 5;"
For i = 1 To 20
mySQL = "Insert into Données (RefPF,TpsMachine) Values ('"
& RefPF & "',7);"
DoCmd.RunSQL mySQL
Next i
DoCmd.Close
DoCmd.SetWarnings True
End Sub

avec la ligne => mySQL = "Insert into Données
(RefPF,TpsMachine)
Values ('" & RefPF & "',7);"
j'arrive à ecrire une ligne suplémentaire dans la table
Données, la valeur 7 est bien enregistrée mais la valeur
RefPF
n'est pas enregistrées.

Ou est l'erreur ? je suppose dans l'extraction !

Merci pour vote aide

Miofans




bonsoir,

je vous informe au fur et à mesure que j'avance, voila ce que j'arive
à faire:

Sub ouvrir_table2()
Dim sSQL As String
DoCmd.SetWarnings False
For i2 = 1 To 5
compteur = DLookup("TpsMachine", "TPlandeproduction",
"N°= " & i2)
TpsMachSolde = compteur
For i = 1 To compteur
mySQL = "Insert into Données (TpsMachine) Values ('" &
TpsMachSolde & "');"
DoCmd.RunSQL mySQL
TpsMachSolde = TpsMachSolde - 1
Next i
Next i2
DoCmd.Close
DoCmd.SetWarnings True
End Sub

j'ai reussi à extraire ma valeur pour faire ma 1° boucle,
maintenant je doit remplacer la valeur 5 de la boucle 'for i2 = 1 to 5' par



le
nombre d'enregistrement dans la table "TPlandeproduction"

comment compter le nombre d'enregistrement dans une table ?
comment extraire plusieurs valeurs dans la ligne 1 de la table
"TPlandeproduction" ?

je cherche encore avec vos proposition mais por l'instant je n'y arrive pas.

merci encore de votre aide,

Miofans



Bonjour,

j'avance encore un peu plus, j'ai touver la fonction dcount pour compter les
ligne de ma table,
j'ai donc ceci qui fonctionne:

Sub ouvrir_table()
'cette macro fonctionne
Dim sSQL As String
DoCmd.SetWarnings False
compteur2 = DCount("N°", "TPlandeproduction")
For i2 = 1 To compteur2
MsgBox "#" & RefPF & "#" & Komponen &
"#"
compteur = DLookup("TpsMachine", "TPlandeproduction",
"N°= " & i2)
TpsMachSolde = compteur
For i = 1 To compteur
RefPF = 1698000 + i
Komponen = 5555 + i
mySql = "Insert into Données (RefPF,Komponen,TpsMachine) Values
('" & RefPF &
"','" & Komponen & "','" & TpsMachSolde &
"');"
MsgBox "#" & RefPF & "#" & Komponen &
"#"
DoCmd.RunSQL mySql
TpsMachSolde = TpsMachSolde - 1
Next i
Next i2
DoCmd.Close
DoCmd.SetWarnings True
End Sub

il me reste donc à trouver comment faire pour extraire plusieurs
valeurs pour
une ligne bien specifique. Il y à la fonction "DLoopkup" mais
elle n'extrait
qu'une valeur alors que j'ai besoin d'extraire plusieurs valeurs.

n'esiter pas à me donner un coup de main car en ce moment je passe
plusieurs
heures par jour sur ce probleme. Si vous pouvez m'aider également
à nettoyer mon
programme de ses imperfections.

Merci à vous tous,

Miofans




Continu, tu es sur la bonne voie.


Bonjour,

merci pour vos encouragement,

je progresse encore et j'ai enfin trouvé la bonne syntaxe de insert into..... select .....where ......
ci dessous le code:
Sub ouvrir_table2()
Dim sSQL As String
DoCmd.SetWarnings False
compteur2 = DCount("N°", "TPlandeproduction")
For i2 = 1 To compteur2
Sql = "INSERT INTO Données (RefPF,Dépot,Komponen,QuantitéMP,Unité,Materialkurztext,PosTra) SELECT RefPF,Dépot,Komponen,QuantitéMP,Unité,Materialkurztext,PosTra FROM TPlandeproduction where N° = i2 "
compteur = DLookup("TpsMachine", "TPlandeproduction", "N°= " & i2)
DoCmd.RunSQL Sql
TpsMachSolde = compteur
For i = 1 To compteur
RefPF = 1698000 + i
Komponen = 5555 + i
mySql = "Insert into Données (RefPF,Komponen,TpsMachine) Values ('" & RefPF & "','" & Komponen & "','" & TpsMachSolde & "');"
MsgBox "#" & RefPF & "#" & Komponen & "#"
DoCmd.RunSQL Sql
DoCmd.RunSQL mySql
TpsMachSolde = TpsMachSolde - 1
Next i
Next i2
DoCmd.Close
DoCmd.SetWarnings True
End Sub


par contre je n'arrive pas à utilise une variable ici i2 pour le => where N° = i2

si vous avez la solution pour la syntaxe de la variable merci de ne pas me laisser mariné car il y a sur google tellement de combinaison que cela prend du temps de faire tous ces essais.

Merci d'avance

Miofan,
Avatar
Michel__D
Bonjour,

miofans a écrit :


PS: Une réponse ci-dessous que j'ai déjà fourni et
qui
pourrait te servir :

Une autre alternative (nécessite l'ajout de la
référence
aux objets ADO)

Sub RequeteADO()
Dim oCn1 As ADODB.Connection
Dim oRst As New ADODB.Recordset
Dim sSQL As String

sSQL = "SELECT IdEenr, [SOMME] FROM LaTable WHERE IdEnr = 5;"

Set oCn1 = CurrentProject.Connection

oRst.Open sSQL, oCn1, adOpenForwardOnly, adLockReadOnly
If Not oRst.EOF Then
nValeur = oRst!SOMME
End If

oRst.Close
oCn1.Close
Set oRst = Nothing
Set oCn1 = Nothing
End Sub

PS:A adapter bien sur.

















je progresse encore et j'ai enfin trouvé la bonne syntaxe de insert into.....
select .....where ......
ci dessous le code:
Sub ouvrir_table2()
Dim sSQL As String
DoCmd.SetWarnings False
compteur2 = DCount("N°", "TPlandeproduction")
For i2 = 1 To compteur2
Sql = "INSERT INTO Données
(RefPF,Dépot,Komponen,QuantitéMP,Unité,Materialkurztext,PosTra) SELECT
RefPF,Dépot,Komponen,QuantitéMP,Unité,Materialkurztext,PosTra FROM
TPlandeproduction where N° = i2 "
compteur = DLookup("TpsMachine", "TPlandeproduction", "N°= " & i2)
DoCmd.RunSQL Sql
TpsMachSolde = compteur
For i = 1 To compteur
RefPF = 1698000 + i
Komponen = 5555 + i
mySql = "Insert into Données (RefPF,Komponen,TpsMachine) Values ('" & RefPF &
"','" & Komponen & "','" & TpsMachSolde & "');"
MsgBox "#" & RefPF & "#" & Komponen & "#"
DoCmd.RunSQL Sql
DoCmd.RunSQL mySql
TpsMachSolde = TpsMachSolde - 1
Next i
Next i2
DoCmd.Close
DoCmd.SetWarnings True
End Sub


par contre je n'arrive pas à utilise une variable ici i2 pour le => where
N° = i2



C'est sur c'est compliqué de faire des trucs que l'on ne comprend pas !!!

PS:Commence par comprendre la 1ère réponse que je t'ai donnée.

si vous avez la solution pour la syntaxe de la variable merci de ne pas me
laisser mariné car il y a sur google tellement de combinaison que cela prend du
temps de faire tous ces essais.

Merci d'avance



Pas de quoi.
1 2