Par code VBA, j'ajoute des lignes dans une table. Avec un SQL server US, tout se passe bien. Avec un SQL serveur français, le
traitement des dates produit une erreur:
"La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors des limites des valeurs de date et
d'heure., -2147217913,22007".
L'erreur se produit au moment où j'utilise la méthode UPDATE.
cnn.Errors.Count reste à zéro.
J'ai déjà eu ce type de problème que j'ai résolu en utilisant le format ISO, mais dans ce cas, ce format n'est pas reconnu par
Access. J'ai essayé de convertir explicitement au format US, français, etc..... rien n'y fait.....
Voilà le code et merci d'avance
J-Pierre
-------------------------------------------
Dim jjjTab() 'Le tableau est rempli correctement autre part
Dim strgSQL As String
L'erreur se produit au moment où j'utilise la méthode UPDATE. cnn.Errors.Count NE reste PAS à zéro.
VUILLERMET Jacques
Peu importe si SQL Server est US ou FR.
Tout dépend du language associé au login ("connexion" en français). Passe-le en US (via Enterprise Manager) ou utilise SET LANGUAGE pour chaque session.
Et vérifie ce que le loubard d'Access te fais par le Générateur de profils, il est capable de tout !
Jacques.
"J-Pierre" a écrit dans le message de news: #o$
Bonjour tout le monde,
Par code VBA, j'ajoute des lignes dans une table. Avec un SQL server US, tout se passe bien. Avec un SQL serveur français, le
traitement des dates produit une erreur:
"La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors des limites des valeurs de date et
d'heure., -2147217913,22007".
L'erreur se produit au moment où j'utilise la méthode UPDATE. cnn.Errors.Count reste à zéro.
J'ai déjà eu ce type de problème que j'ai résolu en utilisant le format ISO, mais dans ce cas, ce format n'est pas reconnu par
Access. J'ai essayé de convertir explicitement au format US, français, etc..... rien n'y fait.....
Voilà le code et merci d'avance
J-Pierre
------------------------------------------- Dim jjjTab() 'Le tableau est rempli correctement autre part Dim strgSQL As String
If cnn.Errors.Count > 0 Then MsgBox cnn.Errors(0).Description & "," & cnn.Errors(0).Number & "," & _
cnn.Errors(0).SQLState End If
On Error GoTo 0 rs2.Close ----------------------------------
Peu importe si SQL Server est US ou FR.
Tout dépend du language associé au login ("connexion" en français).
Passe-le en US (via Enterprise Manager) ou utilise SET LANGUAGE pour chaque
session.
Et vérifie ce que le loubard d'Access te fais par le Générateur de profils,
il est capable de tout !
Jacques.
"J-Pierre" <pas.de.pub.jpberchtold@hotmail.com> a écrit dans le message de
news: #o$05qnsDHA.4056@TK2MSFTNGP11.phx.gbl...
Bonjour tout le monde,
Par code VBA, j'ajoute des lignes dans une table. Avec un SQL server US,
tout se passe bien. Avec un SQL serveur français, le
traitement des dates produit une erreur:
"La conversion d'un type de données CHAR en type DATETIME a donné une
valeur hors des limites des valeurs de date et
d'heure., -2147217913,22007".
L'erreur se produit au moment où j'utilise la méthode UPDATE.
cnn.Errors.Count reste à zéro.
J'ai déjà eu ce type de problème que j'ai résolu en utilisant le format
ISO, mais dans ce cas, ce format n'est pas reconnu par
Access. J'ai essayé de convertir explicitement au format US, français,
etc..... rien n'y fait.....
Voilà le code et merci d'avance
J-Pierre
-------------------------------------------
Dim jjjTab() 'Le tableau est rempli correctement autre part
Dim strgSQL As String
Tout dépend du language associé au login ("connexion" en français). Passe-le en US (via Enterprise Manager) ou utilise SET LANGUAGE pour chaque session.
Et vérifie ce que le loubard d'Access te fais par le Générateur de profils, il est capable de tout !
Jacques.
"J-Pierre" a écrit dans le message de news: #o$
Bonjour tout le monde,
Par code VBA, j'ajoute des lignes dans une table. Avec un SQL server US, tout se passe bien. Avec un SQL serveur français, le
traitement des dates produit une erreur:
"La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors des limites des valeurs de date et
d'heure., -2147217913,22007".
L'erreur se produit au moment où j'utilise la méthode UPDATE. cnn.Errors.Count reste à zéro.
J'ai déjà eu ce type de problème que j'ai résolu en utilisant le format ISO, mais dans ce cas, ce format n'est pas reconnu par
Access. J'ai essayé de convertir explicitement au format US, français, etc..... rien n'y fait.....
Voilà le code et merci d'avance
J-Pierre
------------------------------------------- Dim jjjTab() 'Le tableau est rempli correctement autre part Dim strgSQL As String
If cnn.Errors.Count > 0 Then MsgBox cnn.Errors(0).Description & "," & cnn.Errors(0).Number & "," & _
cnn.Errors(0).SQLState End If
On Error GoTo 0 rs2.Close ----------------------------------
J-Pierre
Salut Jacques,
Ben si, US ou FR, avec Access, ça importe, puisqu'il en tient compte alors que théoriquement, ça ne devrait influencer que l'affichage...:-))))
La solution se trouve dans cette direction, j'ai fait un "set language anglais" et un restaure à la langue d'origine (français), ça marche. Maintenant, je dois adapter, car je préfère travailler avec un setting US, sauf cas particulier.
En fait, le problème ne se manifeste que si on bidouille dans un recordsSet (rst!.......), apparemment, Access génère une requête SQL de mise à jour en fonction du language associé au lieu de la générer toujours au format US. Pour le 15 décembre, il passe 15/12/03 à SQL, qui ne trouve pas le 15ème mois de l'année. On est pas loin du bug.... Le reste du temps, par exemple proc cataloguées avec paramètres date, Access travaille correctement.
Merci :-)
J-Pierre
"VUILLERMET Jacques" a écrit dans le message de news:
Peu importe si SQL Server est US ou FR.
Tout dépend du language associé au login ("connexion" en français). Passe-le en US (via Enterprise Manager) ou utilise SET LANGUAGE pour chaque session.
Et vérifie ce que le loubard d'Access te fais par le Générateur de profils, il est capable de tout !
Jacques.
"J-Pierre" a écrit dans le message de news: #o$
Bonjour tout le monde,
Par code VBA, j'ajoute des lignes dans une table. Avec un SQL server US, tout se passe bien. Avec un SQL serveur français, le
traitement des dates produit une erreur:
"La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors des limites des valeurs de date et
d'heure., -2147217913,22007".
L'erreur se produit au moment où j'utilise la méthode UPDATE. cnn.Errors.Count reste à zéro.
J'ai déjà eu ce type de problème que j'ai résolu en utilisant le format ISO, mais dans ce cas, ce format n'est pas reconnu par
Access. J'ai essayé de convertir explicitement au format US, français, etc..... rien n'y fait.....
Voilà le code et merci d'avance
J-Pierre
------------------------------------------- Dim jjjTab() 'Le tableau est rempli correctement autre part Dim strgSQL As String
If cnn.Errors.Count > 0 Then MsgBox cnn.Errors(0).Description & "," & cnn.Errors(0).Number & "," & _
cnn.Errors(0).SQLState End If
On Error GoTo 0 rs2.Close ----------------------------------
Salut Jacques,
Ben si, US ou FR, avec Access, ça importe, puisqu'il en tient compte alors que théoriquement, ça ne devrait influencer que
l'affichage...:-))))
La solution se trouve dans cette direction, j'ai fait un "set language anglais" et un restaure à la langue d'origine (français), ça
marche. Maintenant, je dois adapter, car je préfère travailler avec un setting US, sauf cas particulier.
En fait, le problème ne se manifeste que si on bidouille dans un recordsSet (rst!.......), apparemment, Access génère une requête
SQL de mise à jour en fonction du language associé au lieu de la générer toujours au format US. Pour le 15 décembre, il passe
15/12/03 à SQL, qui ne trouve pas le 15ème mois de l'année. On est pas loin du bug.... Le reste du temps, par exemple proc
cataloguées avec paramètres date, Access travaille correctement.
Merci :-)
J-Pierre
"VUILLERMET Jacques" <jvuillermet@no-spam.fr> a écrit dans le message de news:uXm58RosDHA.2400@tk2msftngp13.phx.gbl...
Peu importe si SQL Server est US ou FR.
Tout dépend du language associé au login ("connexion" en français).
Passe-le en US (via Enterprise Manager) ou utilise SET LANGUAGE pour chaque
session.
Et vérifie ce que le loubard d'Access te fais par le Générateur de profils,
il est capable de tout !
Jacques.
"J-Pierre" <pas.de.pub.jpberchtold@hotmail.com> a écrit dans le message de
news: #o$05qnsDHA.4056@TK2MSFTNGP11.phx.gbl...
Bonjour tout le monde,
Par code VBA, j'ajoute des lignes dans une table. Avec un SQL server US,
tout se passe bien. Avec un SQL serveur français, le
traitement des dates produit une erreur:
"La conversion d'un type de données CHAR en type DATETIME a donné une
valeur hors des limites des valeurs de date et
d'heure., -2147217913,22007".
L'erreur se produit au moment où j'utilise la méthode UPDATE.
cnn.Errors.Count reste à zéro.
J'ai déjà eu ce type de problème que j'ai résolu en utilisant le format
ISO, mais dans ce cas, ce format n'est pas reconnu par
Access. J'ai essayé de convertir explicitement au format US, français,
etc..... rien n'y fait.....
Voilà le code et merci d'avance
J-Pierre
-------------------------------------------
Dim jjjTab() 'Le tableau est rempli correctement autre part
Dim strgSQL As String
Ben si, US ou FR, avec Access, ça importe, puisqu'il en tient compte alors que théoriquement, ça ne devrait influencer que l'affichage...:-))))
La solution se trouve dans cette direction, j'ai fait un "set language anglais" et un restaure à la langue d'origine (français), ça marche. Maintenant, je dois adapter, car je préfère travailler avec un setting US, sauf cas particulier.
En fait, le problème ne se manifeste que si on bidouille dans un recordsSet (rst!.......), apparemment, Access génère une requête SQL de mise à jour en fonction du language associé au lieu de la générer toujours au format US. Pour le 15 décembre, il passe 15/12/03 à SQL, qui ne trouve pas le 15ème mois de l'année. On est pas loin du bug.... Le reste du temps, par exemple proc cataloguées avec paramètres date, Access travaille correctement.
Merci :-)
J-Pierre
"VUILLERMET Jacques" a écrit dans le message de news:
Peu importe si SQL Server est US ou FR.
Tout dépend du language associé au login ("connexion" en français). Passe-le en US (via Enterprise Manager) ou utilise SET LANGUAGE pour chaque session.
Et vérifie ce que le loubard d'Access te fais par le Générateur de profils, il est capable de tout !
Jacques.
"J-Pierre" a écrit dans le message de news: #o$
Bonjour tout le monde,
Par code VBA, j'ajoute des lignes dans une table. Avec un SQL server US, tout se passe bien. Avec un SQL serveur français, le
traitement des dates produit une erreur:
"La conversion d'un type de données CHAR en type DATETIME a donné une valeur hors des limites des valeurs de date et
d'heure., -2147217913,22007".
L'erreur se produit au moment où j'utilise la méthode UPDATE. cnn.Errors.Count reste à zéro.
J'ai déjà eu ce type de problème que j'ai résolu en utilisant le format ISO, mais dans ce cas, ce format n'est pas reconnu par
Access. J'ai essayé de convertir explicitement au format US, français, etc..... rien n'y fait.....
Voilà le code et merci d'avance
J-Pierre
------------------------------------------- Dim jjjTab() 'Le tableau est rempli correctement autre part Dim strgSQL As String
If cnn.Errors.Count > 0 Then MsgBox cnn.Errors(0).Description & "," & cnn.Errors(0).Number & "," & _
cnn.Errors(0).SQLState End If
On Error GoTo 0 rs2.Close ----------------------------------
J-Pierre
Jacques,
C'est bien là le problème avec Access, c'est qu'il tient compte du set language SQL pour construire les requêtes UPDATE (et sans doute INSERT et DELETE), alors que ce paramètre n'influence que la présentation des données.
Bref, tu as réglé le probléme, si je bidouille un RecordSet, je change la langue et la remets après, que demander de plus ?
Ha oui, j'ai la flemme d'aller dans ton autre post, il me semble que ton problème de trigger (résolu) est peut-être révélateur d'un problème de design dans ton formulaire. Si ça t'intéresse, on continue par mail, sinon, laisse tomber.
Tu sais quoi ? Il y a eu exactement 5 allumés dans le monde entier francophone qui utilisent ADP + SQL serveur, toi, Gafish, moi, les deux autres se sont suicidés depuis longtemps....
Merci pour le document, je lirai ça avec attention !!!!!!!
J-Pierre
"VUILLERMET Jacques" a écrit dans le message de news:%
Il faut comprendre que pour SQL Server la gestion des dates est différente en insertion/update et en lecture (je suis plus spécialiste de SQL Server que de Access, donc j'ai plus la vision "serveur").
Ci-joint un document que je me suis rédigé un jour où je me suis dit : "je ne quitterai pas mon bureau avant d'avoir compris" !
a+ Jacques.
Jacques,
C'est bien là le problème avec Access, c'est qu'il tient compte du set language SQL pour construire les requêtes UPDATE (et sans
doute INSERT et DELETE), alors que ce paramètre n'influence que la présentation des données.
Bref, tu as réglé le probléme, si je bidouille un RecordSet, je change la langue et la remets après, que demander de plus ?
Ha oui, j'ai la flemme d'aller dans ton autre post, il me semble que ton problème de trigger (résolu) est peut-être révélateur d'un
problème de design dans ton formulaire. Si ça t'intéresse, on continue par mail, sinon, laisse tomber.
Tu sais quoi ? Il y a eu exactement 5 allumés dans le monde entier francophone qui utilisent ADP + SQL serveur, toi, Gafish, moi,
les deux autres se sont suicidés depuis longtemps....
Merci pour le document, je lirai ça avec attention !!!!!!!
J-Pierre
"VUILLERMET Jacques" <jvuillermet@no-spam.fr> a écrit dans le message de news:%23TLkm4qsDHA.2360@TK2MSFTNGP09.phx.gbl...
Il faut comprendre que pour SQL Server la gestion des dates est différente
en insertion/update et en lecture (je suis plus spécialiste de SQL Server
que de Access, donc j'ai plus la vision "serveur").
Ci-joint un document que je me suis rédigé un jour où je me suis dit : "je
ne quitterai pas mon bureau avant d'avoir compris" !
C'est bien là le problème avec Access, c'est qu'il tient compte du set language SQL pour construire les requêtes UPDATE (et sans doute INSERT et DELETE), alors que ce paramètre n'influence que la présentation des données.
Bref, tu as réglé le probléme, si je bidouille un RecordSet, je change la langue et la remets après, que demander de plus ?
Ha oui, j'ai la flemme d'aller dans ton autre post, il me semble que ton problème de trigger (résolu) est peut-être révélateur d'un problème de design dans ton formulaire. Si ça t'intéresse, on continue par mail, sinon, laisse tomber.
Tu sais quoi ? Il y a eu exactement 5 allumés dans le monde entier francophone qui utilisent ADP + SQL serveur, toi, Gafish, moi, les deux autres se sont suicidés depuis longtemps....
Merci pour le document, je lirai ça avec attention !!!!!!!
J-Pierre
"VUILLERMET Jacques" a écrit dans le message de news:%
Il faut comprendre que pour SQL Server la gestion des dates est différente en insertion/update et en lecture (je suis plus spécialiste de SQL Server que de Access, donc j'ai plus la vision "serveur").
Ci-joint un document que je me suis rédigé un jour où je me suis dit : "je ne quitterai pas mon bureau avant d'avoir compris" !
a+ Jacques.
J-Pierre
Excellent, ton document sur le format des dates, j'ai appris quelque chose, merci.................
Excellent, ton document sur le format des dates, j'ai appris quelque chose, merci.................
Un dernier point, il me semble que pour ce que tu veux faire, un trigger est superflu, une valeur par défaut irait aussi bien.
J-Pierre
VUILLERMET Jacques
La valeur par défaut n'est utilisée par le serveur QUE si le client n'a pas fourni de valeur. Or, dans mon cas, le client (Access ADP) fourni une valeur : Null. Le mécanisme de valeur par défaut n'est donc jamais appelé.
Le trigger permet alors de MODIFIER la valeur fournie en 0.
Jacques.
"J-Pierre" a écrit dans le message de news: uI5xN#
Un dernier point, il me semble que pour ce que tu veux faire, un trigger est superflu, une valeur par défaut irait aussi bien.
J-Pierre
La valeur par défaut n'est utilisée par le serveur QUE si le client n'a pas
fourni de valeur.
Or, dans mon cas, le client (Access ADP) fourni une valeur : Null. Le
mécanisme de valeur par défaut n'est donc jamais appelé.
Le trigger permet alors de MODIFIER la valeur fournie en 0.
Jacques.
"J-Pierre" <pas.de.pub.jpberchtold@hotmail.com> a écrit dans le message de
news: uI5xN#ysDHA.3468@TK2MSFTNGP11.phx.gbl...
Un dernier point, il me semble que pour ce que tu veux faire, un trigger
est superflu, une valeur par défaut irait aussi bien.
La valeur par défaut n'est utilisée par le serveur QUE si le client n'a pas fourni de valeur. Or, dans mon cas, le client (Access ADP) fourni une valeur : Null. Le mécanisme de valeur par défaut n'est donc jamais appelé.
Le trigger permet alors de MODIFIER la valeur fournie en 0.
Jacques.
"J-Pierre" a écrit dans le message de news: uI5xN#
Un dernier point, il me semble que pour ce que tu veux faire, un trigger est superflu, une valeur par défaut irait aussi bien.