Liaison de données SQL Server - Access + Date Access [resolu]

Liaison de données SQL Server - Access + Date Access [resolu] - VB/VBA/VBS - Programmation

Marsh Posté le 26-05-2004 à 10:23:59    

Bonjour,
 
Je gère des formulaires sous Access XP avec des tables liées SQL server 2000, par une connexion ODBC.
J’ai des tables qui comporte des champs de type booléen (« bit » sous SQL Server)
 
Ex : j'ai trois tables liées à mon formulaire : ELEVE(noeleve,nom, prenom), PARLE(noeleve, nolangue, lu, ecrit, parle), LANGUE(nolangue, libelle).
Dans la table PARLE, les trois champs lu, ecrit et parle sont des booléens.
J'associe ces trois champs à des cases à cocher dans mon sous formulaire Access.
 
Dans ce sous-formulaire, je parviens à cocher les cases (lu, écrit, parlé) lors de la "création" de l'enregistrement de PARLE.
Mais si je veux mettre à jour la case à cocher (ex : je me suis trompée et je veux dire qu'un élève ne sait pas lire l'anglais), un conflit d'écriture survient et je ne peux pas mettre à jour le champ "lu" dans l'enregistrement.
 
Ce problème est-il dû à la liaison ODBC ? Y a-t-il une incompatibilité entre le type booléen de SQL server et le type booléen retranscrit sous Access ?
Savez-vous comment résoudre ce problème de conflit d'écriture ?


Message édité par dpmy le 27-05-2004 à 13:22:25
Reply

Marsh Posté le 26-05-2004 à 10:23:59   

Reply

Marsh Posté le 26-05-2004 à 13:35:29    

Il n'y aucun pb de liaison. Moi même j'ai des tables liées avec des formulaires et ces tables SQL Server ont des liaisons ODBC avec Access.
Alors il faut que tu te débrouille seul...
Combiens de tables as-tu lié à ton formulaire ? Est-ce que tu a fait une liaison "directe" c'est a dire sur une table ou sur une requete ? As-tu lié ton champ "lu" à un champ d'une table SQL Server ?  
Vérifie si ta connexion a bien été faite, mais à priori si tu arrives à lire les données et à les modifier une fois cela ne vient pas de là. Essaie aussi de vérifier les droits (je ne sais pas s'il y en a lors d'une connexion ODBC) car le fait que tu peux entrer mais pas modifier ressemnle à un pb de ce type.
Essaie tout ça et donne plus de précision si tu veux une aide plus efficace.
Bonne chance

Reply

Marsh Posté le 27-05-2004 à 10:31:03    


C'était bien un pb de type. En fait, sous sql server, le type booléen est à trois état : 0,1,null alors que sous Access les états sont -1,0 et vide.
C'est pour cela que lors de la mise à jour de ma table, j'ai eu ce problème de conflit d'écriture. Du coup, je ne gère plus de booléen mais des entiers.
 
En revanche, j'ai maintenant un problème du même ordre.  
Dans un formulaire, j'attache un recordsource de la manière suivante :
d = dateValue ("01/02/2000" )  
Me.recourdSource = "SELECT * FROM [table liée SQL server] WHERE date > " & d
Or, cela ne marche pas : mon formulaire affiche tous les enregistrements sans filtrer sur la date. (Je précise que j'ai converti la chaine en date parce que sinon, l'opération d'affectation du recordsource est annulée)  
Pourtant, dans SQL Server, si je tape ma requête en dur (select * from [table] where date >'01/02/2000'), j'ai bien la liste filtrée des enregistrements.  
Que dois-je faire pour appliquer le filtre date correctement ?

Reply

Marsh Posté le 27-05-2004 à 11:48:46    

Sous SQL Server tu mets ta date entre quote ( ' ) et bien sous Access il faut la mettre entre dièses ( # ). Cela donne

Code :
  1. SELECT * FROM MaTable WHERE Date > #01/02/2000#


 
J'ai déja eu le même pb, j'ai fait ça et ça marche nickel :)
Bonne Chance

Reply

Marsh Posté le 27-05-2004 à 12:09:20    


Merci !! (Dire que j'ai cherché pdt 100 ans...)
Tu viens de me tirer une grande épingle du pied là !

Reply

Marsh Posté le 27-05-2004 à 12:25:28    

Je sais on m'avais dit une fois mais je l'ai oublié et j'ai du perdre pas mal de temps avant de retrouver l'info dans l'aide de MERDE de Access. Content que ça ait pu servir à kelk1.
Ce que tu peux faire pour que ça serve à d'autre, modifie le nom du topic et rajoute "Date Access" et "[Résolu]" comme ça si d'autres personnes ont le même pb elles n'auront qu'à faire une recherche

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed