Erreur 3346 : Le nombre des valeurs de requêtes et des champs de destination sont différents
2 réponses
clb
Bonjour à tous,
Voici mon problème : une bdd access 97 fonctionne correctement sur mon poste
et me renvoi l'erreur 3346 chez mon client (également access 97, tous les 2
en win XP Pro).
J'ai vérifié la correspondance du type de champs, tout me semble ok mais à
force de regarder...
Si quelqu'un a une piste, je suis sérieusement preneur.
Merci d'avance.
Dim QteL As Double
Dim QteN1 As Double
Dim QteN2 As Double
Dim QteTot As Double
Dim sSQL As String
Dim qdf As DAO.QueryDef
Dim Rst As Recordset
Dim i As Integer
' vidage de la table Tmp
sSQL = "DELETE FROM MyTmp"
CurrentDb.Execute sSQL
' Ouverture du Recordset en défilement en avant, et en lecture seule
Set qdf = CurrentDb.QueryDefs("MyReqTmp")
qdf.Parameters("MY_PARAM") = Me![Modifiable0]
Set Rst = qdf.OpenRecordset
Rst.MoveFirst
i = 0
Do Until Rst.EOF
QteL = Rst("Qte")
If Rst("Type") <> "T" And Rst("Type") <> "" Then
If Rst("Type") <> "O" Then
' pas un ouvrage
If Rst("NivOuv") = 0 Then
QteTot = QteL
ElseIf Rst("NivOuv") = 1 Then
QteTot = QteL * QteN1
ElseIf Rst("NivOuv") = 2 Then
QteTot = (QteL * QteN2) * QteN1
End If
CurrentDb.Execute sSQL
Else
' un ouvrage
If Rst("NivOuv") = 1 Then
QteN1 = Rst("Qte")
Else
QteN2 = Rst("Qte")
End If
End If
End If
Rst.MoveNext
i = i + 1
Loop
"clb" a écrit dans le message de news: 41dc1025$0$31517$
Bonjour à tous,
Voici mon problème : une bdd access 97 fonctionne correctement sur mon poste et me renvoi l'erreur 3346 chez mon client (également access 97, tous les 2 en win XP Pro).
J'ai vérifié la correspondance du type de champs, tout me semble ok mais à force de regarder...
Si quelqu'un a une piste, je suis sérieusement preneur.
Merci d'avance.
Dim QteL As Double Dim QteN1 As Double Dim QteN2 As Double Dim QteTot As Double Dim sSQL As String Dim qdf As DAO.QueryDef Dim Rst As Recordset Dim i As Integer
' vidage de la table Tmp sSQL = "DELETE FROM MyTmp" CurrentDb.Execute sSQL
' Ouverture du Recordset en défilement en avant, et en lecture seule Set qdf = CurrentDb.QueryDefs("MyReqTmp") qdf.Parameters("MY_PARAM") = Me![Modifiable0] Set Rst = qdf.OpenRecordset
Rst.MoveFirst i = 0 Do Until Rst.EOF QteL = Rst("Qte")
If Rst("Type") <> "T" And Rst("Type") <> "" Then If Rst("Type") <> "O" Then ' pas un ouvrage If Rst("NivOuv") = 0 Then QteTot = QteL ElseIf Rst("NivOuv") = 1 Then QteTot = QteL * QteN1 ElseIf Rst("NivOuv") = 2 Then QteTot = (QteL * QteN2) * QteN1 End If
CurrentDb.Execute sSQL Else ' un ouvrage If Rst("NivOuv") = 1 Then QteN1 = Rst("Qte") Else QteN2 = Rst("Qte") End If End If End If Rst.MoveNext i = i + 1 Loop
Bonjour,
Tu à surement une valeur null dans cette section :
"clb" <clb@mealknfnm.com> a écrit dans le message de news:
41dc1025$0$31517$626a14ce@news.free.fr...
Bonjour à tous,
Voici mon problème : une bdd access 97 fonctionne correctement sur mon
poste
et me renvoi l'erreur 3346 chez mon client (également access 97, tous les
2
en win XP Pro).
J'ai vérifié la correspondance du type de champs, tout me semble ok mais à
force de regarder...
Si quelqu'un a une piste, je suis sérieusement preneur.
Merci d'avance.
Dim QteL As Double
Dim QteN1 As Double
Dim QteN2 As Double
Dim QteTot As Double
Dim sSQL As String
Dim qdf As DAO.QueryDef
Dim Rst As Recordset
Dim i As Integer
' vidage de la table Tmp
sSQL = "DELETE FROM MyTmp"
CurrentDb.Execute sSQL
' Ouverture du Recordset en défilement en avant, et en lecture seule
Set qdf = CurrentDb.QueryDefs("MyReqTmp")
qdf.Parameters("MY_PARAM") = Me![Modifiable0]
Set Rst = qdf.OpenRecordset
Rst.MoveFirst
i = 0
Do Until Rst.EOF
QteL = Rst("Qte")
If Rst("Type") <> "T" And Rst("Type") <> "" Then
If Rst("Type") <> "O" Then
' pas un ouvrage
If Rst("NivOuv") = 0 Then
QteTot = QteL
ElseIf Rst("NivOuv") = 1 Then
QteTot = QteL * QteN1
ElseIf Rst("NivOuv") = 2 Then
QteTot = (QteL * QteN2) * QteN1
End If
CurrentDb.Execute sSQL
Else
' un ouvrage
If Rst("NivOuv") = 1 Then
QteN1 = Rst("Qte")
Else
QteN2 = Rst("Qte")
End If
End If
End If
Rst.MoveNext
i = i + 1
Loop
"clb" a écrit dans le message de news: 41dc1025$0$31517$
Bonjour à tous,
Voici mon problème : une bdd access 97 fonctionne correctement sur mon poste et me renvoi l'erreur 3346 chez mon client (également access 97, tous les 2 en win XP Pro).
J'ai vérifié la correspondance du type de champs, tout me semble ok mais à force de regarder...
Si quelqu'un a une piste, je suis sérieusement preneur.
Merci d'avance.
Dim QteL As Double Dim QteN1 As Double Dim QteN2 As Double Dim QteTot As Double Dim sSQL As String Dim qdf As DAO.QueryDef Dim Rst As Recordset Dim i As Integer
' vidage de la table Tmp sSQL = "DELETE FROM MyTmp" CurrentDb.Execute sSQL
' Ouverture du Recordset en défilement en avant, et en lecture seule Set qdf = CurrentDb.QueryDefs("MyReqTmp") qdf.Parameters("MY_PARAM") = Me![Modifiable0] Set Rst = qdf.OpenRecordset
Rst.MoveFirst i = 0 Do Until Rst.EOF QteL = Rst("Qte")
If Rst("Type") <> "T" And Rst("Type") <> "" Then If Rst("Type") <> "O" Then ' pas un ouvrage If Rst("NivOuv") = 0 Then QteTot = QteL ElseIf Rst("NivOuv") = 1 Then QteTot = QteL * QteN1 ElseIf Rst("NivOuv") = 2 Then QteTot = (QteL * QteN2) * QteN1 End If
CurrentDb.Execute sSQL Else ' un ouvrage If Rst("NivOuv") = 1 Then QteN1 = Rst("Qte") Else QteN2 = Rst("Qte") End If End If End If Rst.MoveNext i = i + 1 Loop
clb
Effectivement, Merci beaucoup.
"Logipro" a écrit dans le message de news:
Bonjour,
Tu à surement une valeur null dans cette section :
"clb" a écrit dans le message de news: 41dc1025$0$31517$
Bonjour à tous,
Voici mon problème : une bdd access 97 fonctionne correctement sur mon poste et me renvoi l'erreur 3346 chez mon client (également access 97, tous les
2 en win XP Pro).
J'ai vérifié la correspondance du type de champs, tout me semble ok mais à
force de regarder...
Si quelqu'un a une piste, je suis sérieusement preneur.
Merci d'avance.
Dim QteL As Double Dim QteN1 As Double Dim QteN2 As Double Dim QteTot As Double Dim sSQL As String Dim qdf As DAO.QueryDef Dim Rst As Recordset Dim i As Integer
' vidage de la table Tmp sSQL = "DELETE FROM MyTmp" CurrentDb.Execute sSQL
' Ouverture du Recordset en défilement en avant, et en lecture seule Set qdf = CurrentDb.QueryDefs("MyReqTmp") qdf.Parameters("MY_PARAM") = Me![Modifiable0] Set Rst = qdf.OpenRecordset
Rst.MoveFirst i = 0 Do Until Rst.EOF QteL = Rst("Qte")
If Rst("Type") <> "T" And Rst("Type") <> "" Then If Rst("Type") <> "O" Then ' pas un ouvrage If Rst("NivOuv") = 0 Then QteTot = QteL ElseIf Rst("NivOuv") = 1 Then QteTot = QteL * QteN1 ElseIf Rst("NivOuv") = 2 Then QteTot = (QteL * QteN2) * QteN1 End If
CurrentDb.Execute sSQL Else ' un ouvrage If Rst("NivOuv") = 1 Then QteN1 = Rst("Qte") Else QteN2 = Rst("Qte") End If End If End If Rst.MoveNext i = i + 1 Loop
Effectivement, Merci beaucoup.
"Logipro" <logipro2000nospam@hotmail.com> a écrit dans le message de
news:OwILNG08EHA.1296@TK2MSFTNGP10.phx.gbl...
Bonjour,
Tu à surement une valeur null dans cette section :
"clb" <clb@mealknfnm.com> a écrit dans le message de news:
41dc1025$0$31517$626a14ce@news.free.fr...
Bonjour à tous,
Voici mon problème : une bdd access 97 fonctionne correctement sur mon
poste
et me renvoi l'erreur 3346 chez mon client (également access 97, tous
les
2
en win XP Pro).
J'ai vérifié la correspondance du type de champs, tout me semble ok mais
à
force de regarder...
Si quelqu'un a une piste, je suis sérieusement preneur.
Merci d'avance.
Dim QteL As Double
Dim QteN1 As Double
Dim QteN2 As Double
Dim QteTot As Double
Dim sSQL As String
Dim qdf As DAO.QueryDef
Dim Rst As Recordset
Dim i As Integer
' vidage de la table Tmp
sSQL = "DELETE FROM MyTmp"
CurrentDb.Execute sSQL
' Ouverture du Recordset en défilement en avant, et en lecture seule
Set qdf = CurrentDb.QueryDefs("MyReqTmp")
qdf.Parameters("MY_PARAM") = Me![Modifiable0]
Set Rst = qdf.OpenRecordset
Rst.MoveFirst
i = 0
Do Until Rst.EOF
QteL = Rst("Qte")
If Rst("Type") <> "T" And Rst("Type") <> "" Then
If Rst("Type") <> "O" Then
' pas un ouvrage
If Rst("NivOuv") = 0 Then
QteTot = QteL
ElseIf Rst("NivOuv") = 1 Then
QteTot = QteL * QteN1
ElseIf Rst("NivOuv") = 2 Then
QteTot = (QteL * QteN2) * QteN1
End If
CurrentDb.Execute sSQL
Else
' un ouvrage
If Rst("NivOuv") = 1 Then
QteN1 = Rst("Qte")
Else
QteN2 = Rst("Qte")
End If
End If
End If
Rst.MoveNext
i = i + 1
Loop
"clb" a écrit dans le message de news: 41dc1025$0$31517$
Bonjour à tous,
Voici mon problème : une bdd access 97 fonctionne correctement sur mon poste et me renvoi l'erreur 3346 chez mon client (également access 97, tous les
2 en win XP Pro).
J'ai vérifié la correspondance du type de champs, tout me semble ok mais à
force de regarder...
Si quelqu'un a une piste, je suis sérieusement preneur.
Merci d'avance.
Dim QteL As Double Dim QteN1 As Double Dim QteN2 As Double Dim QteTot As Double Dim sSQL As String Dim qdf As DAO.QueryDef Dim Rst As Recordset Dim i As Integer
' vidage de la table Tmp sSQL = "DELETE FROM MyTmp" CurrentDb.Execute sSQL
' Ouverture du Recordset en défilement en avant, et en lecture seule Set qdf = CurrentDb.QueryDefs("MyReqTmp") qdf.Parameters("MY_PARAM") = Me![Modifiable0] Set Rst = qdf.OpenRecordset
Rst.MoveFirst i = 0 Do Until Rst.EOF QteL = Rst("Qte")
If Rst("Type") <> "T" And Rst("Type") <> "" Then If Rst("Type") <> "O" Then ' pas un ouvrage If Rst("NivOuv") = 0 Then QteTot = QteL ElseIf Rst("NivOuv") = 1 Then QteTot = QteL * QteN1 ElseIf Rst("NivOuv") = 2 Then QteTot = (QteL * QteN2) * QteN1 End If
CurrentDb.Execute sSQL Else ' un ouvrage If Rst("NivOuv") = 1 Then QteN1 = Rst("Qte") Else QteN2 = Rst("Qte") End If End If End If Rst.MoveNext i = i + 1 Loop