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

Erreur 3346 causée par une requête "Insert into"...

3 réponses
Avatar
Danny Poirier
Bonjour,

Nous avons un problème chez un de nos clients avec notre application
développée en Access 2000. Cette application roule chez nos clients avec le
runtime d'Access 2000.

Voici le message d'erreur :

Le nombre des valeurs de requêtes et des champs de destination sont
différents. (Erreur 3346)
La requête INSERT INTO (ajouter) n'a pas suffisamment de champs de
destination ou le nombre de ses champs dans la liste VALUES ou SELECT
dépasse le nombre de champs dans la table de destination. Sélectionnez un
nombre de champs correspondant.

Et voici maintenant un résumé du code où le système semble tomber en erreur
:

'******************************************************

Dim db As DAO.Database

Dim strSQL as String

'- ouvre la bd courante
Set db = CurrentDb()

strSQL = "INSERT INTO " & ctblChargementCoutDistribue & " ([IDBille],
[CoutDistribue], [CoutIntervenant], [ASynchroniser]) " & _
"VALUES (" & rst!IDBille & ", " & curCout &
", TRUE, TRUE);"

'- exécute la requête
Call db.Execute(strSQL)

'*****************************************************

Le hic, c'est que ça fonctionne très bien sur nos postes ainsi que sur ceux
de nos autres clients. Nous avons récupérérés les données du client et ça
fonctionne également bien sur nos postes. Le client est en Windows XP avec
le service pack 1. Tout concorde avec nous....

Est-ce que quelqu'un a une petite idée ou un semblant de piste?

merci à l'avance,

Danny

3 réponses

Avatar
Pierre Fauconnier
Bonjour

J'ai déjà eu un problème similaire avec les séparateurs de décimales. Si le
séparateur décimal est la virgule, il est possible que curCout avec
décimales soit considéré comme deux valeurs distinctes, la partie entière et
la partie décimale. J'avais solutionné le problème en passant la valeur
comme un string en l'encadrant de ' ' ...

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin ( proverbe
zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Danny Poirier" a écrit dans le message de
news:
Bonjour,

Nous avons un problème chez un de nos clients avec notre application
développée en Access 2000. Cette application roule chez nos clients avec
le
runtime d'Access 2000.

Voici le message d'erreur :

Le nombre des valeurs de requêtes et des champs de destination sont
différents. (Erreur 3346)
La requête INSERT INTO (ajouter) n'a pas suffisamment de champs de
destination ou le nombre de ses champs dans la liste VALUES ou SELECT
dépasse le nombre de champs dans la table de destination. Sélectionnez un
nombre de champs correspondant.

Et voici maintenant un résumé du code où le système semble tomber en
erreur
:

'******************************************************

Dim db As DAO.Database

Dim strSQL as String

'- ouvre la bd courante
Set db = CurrentDb()

strSQL = "INSERT INTO " & ctblChargementCoutDistribue & " ([IDBille],
[CoutDistribue], [CoutIntervenant], [ASynchroniser]) " & _
"VALUES (" & rst!IDBille & ", " & curCout
&
", TRUE, TRUE);"

'- exécute la requête
Call db.Execute(strSQL)

'*****************************************************

Le hic, c'est que ça fonctionne très bien sur nos postes ainsi que sur
ceux
de nos autres clients. Nous avons récupérérés les données du client et
ça
fonctionne également bien sur nos postes. Le client est en Windows XP
avec
le service pack 1. Tout concorde avec nous....

Est-ce que quelqu'un a une petite idée ou un semblant de piste?

merci à l'avance,

Danny






Avatar
Marcel
ou encore n'aurais tu pas modifié le nom d'un champ sur une de tes tables
et omis de le corriger dans la requete

"Pierre Fauconnier" a écrit dans le
message de news: %23n$
Bonjour

J'ai déjà eu un problème similaire avec les séparateurs de décimales. Si
le séparateur décimal est la virgule, il est possible que curCout avec
décimales soit considéré comme deux valeurs distinctes, la partie entière
et la partie décimale. J'avais solutionné le problème en passant la valeur
comme un string en l'encadrant de ' ' ...

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Danny Poirier" a écrit dans le message de
news:
Bonjour,

Nous avons un problème chez un de nos clients avec notre application
développée en Access 2000. Cette application roule chez nos clients avec
le
runtime d'Access 2000.

Voici le message d'erreur :

Le nombre des valeurs de requêtes et des champs de destination sont
différents. (Erreur 3346)
La requête INSERT INTO (ajouter) n'a pas suffisamment de champs de
destination ou le nombre de ses champs dans la liste VALUES ou SELECT
dépasse le nombre de champs dans la table de destination. Sélectionnez un
nombre de champs correspondant.

Et voici maintenant un résumé du code où le système semble tomber en
erreur
:

'******************************************************

Dim db As DAO.Database

Dim strSQL as String

'- ouvre la bd courante
Set db = CurrentDb()

strSQL = "INSERT INTO " & ctblChargementCoutDistribue & " ([IDBille],
[CoutDistribue], [CoutIntervenant], [ASynchroniser]) " & _
"VALUES (" & rst!IDBille & ", " & curCout
&
", TRUE, TRUE);"

'- exécute la requête
Call db.Execute(strSQL)

'*****************************************************

Le hic, c'est que ça fonctionne très bien sur nos postes ainsi que sur
ceux
de nos autres clients. Nous avons récupérérés les données du client et
ça
fonctionne également bien sur nos postes. Le client est en Windows XP
avec
le service pack 1. Tout concorde avec nous....

Est-ce que quelqu'un a une petite idée ou un semblant de piste?

merci à l'avance,

Danny










Avatar
Danny Poirier
Merci beraucoup, c'était ça le problème. Le client avait une virgule comme
séparateur de décimale tandis que nous, nous avons un point.

merci encore une fois !

Danny

"Marcel" a écrit dans le message de
news:42aef814$0$21630$
ou encore n'aurais tu pas modifié le nom d'un champ sur une de tes tables
et omis de le corriger dans la requete

"Pierre Fauconnier" a écrit dans le
message de news: %23n$
Bonjour

J'ai déjà eu un problème similaire avec les séparateurs de décimales. Si
le séparateur décimal est la virgule, il est possible que curCout avec
décimales soit considéré comme deux valeurs distinctes, la partie
entière


et la partie décimale. J'avais solutionné le problème en passant la
valeur


comme un string en l'encadrant de ' ' ...

Ok?


--
Pierre Fauconnier ()
"Le bonheur n'est pas au bout du chemin. Le bonheur EST le chemin (
proverbe zen )
Remplacez nospam.nospam par pfi.be pour répondre. Merci

"Danny Poirier" a écrit dans le message
de


news:
Bonjour,

Nous avons un problème chez un de nos clients avec notre application
développée en Access 2000. Cette application roule chez nos clients
avec



le
runtime d'Access 2000.

Voici le message d'erreur :

Le nombre des valeurs de requêtes et des champs de destination sont
différents. (Erreur 3346)
La requête INSERT INTO (ajouter) n'a pas suffisamment de champs de
destination ou le nombre de ses champs dans la liste VALUES ou SELECT
dépasse le nombre de champs dans la table de destination. Sélectionnez
un



nombre de champs correspondant.

Et voici maintenant un résumé du code où le système semble tomber en
erreur
:

'******************************************************

Dim db As DAO.Database

Dim strSQL as String

'- ouvre la bd courante
Set db = CurrentDb()

strSQL = "INSERT INTO " & ctblChargementCoutDistribue & " ([IDBille],
[CoutDistribue], [CoutIntervenant], [ASynchroniser]) " & _
"VALUES (" & rst!IDBille & ", " &
curCout



&
", TRUE, TRUE);"

'- exécute la requête
Call db.Execute(strSQL)

'*****************************************************

Le hic, c'est que ça fonctionne très bien sur nos postes ainsi que sur
ceux
de nos autres clients. Nous avons récupérérés les données du client
et



ça
fonctionne également bien sur nos postes. Le client est en Windows XP
avec
le service pack 1. Tout concorde avec nous....

Est-ce que quelqu'un a une petite idée ou un semblant de piste?

merci à l'avance,

Danny