Fehn
Messages postés41Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention23 février 2006
-
6 juil. 2005 à 10:49
PtitGrumo
Messages postés205Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention28 novembre 2005
-
6 juil. 2005 à 16:19
Bonjour,
est ce que les jointures suivantes entre les tables sont correcte ? (elle sont faite en VBA sous Outlook)
Je demande cela parce que j'ai une erreur dans mon projet et je crois
bien que c'est le dernier obstacle avant que je termine définitivement
ce projet :D Si elles sont fausses pourriez vous les corriger ? Merci
beaucoup :D
strSQL = "Select [company_name] from Actions, Sites, Companys" & _
fred.toto
Messages postés73Date d'inscriptionmardi 10 avril 2001StatutMembreDernière intervention 4 mars 2009 6 juil. 2005 à 10:57
salut
essaye ça pour voir :
"Select company_name
from Actions
left outer join Sites on Actions.[action_siteto] = Sites.[site_id]
left outer join Companys on Actions.[action_siteto] = Sites.[site_id]
where Sites.[company_id] = Companys.[company_id] and Actions.[action_dateeche]= ' " & UserForm2.cboDateEche.Value & "' "
PtitGrumo
Messages postés205Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention28 novembre 20052 6 juil. 2005 à 11:18
Salut,
Pour ma part je te donne 3 direction a prendre!
1 - met des espace a chaque ligne car tu les a oublié (avant le Where et avant les and)
2 - si ta table est de type access alors pour une date ce n'est pas des quotes mais des #
"and Actions.[action_dateeche]= #" & UserForm2.cboDateEche.Value & "# "
3 - vérifie pour chaque égalité de ta close where que les champs ont le même format!
si c trois points sont ok dit le moi on passera au plan B lol
Fehn
Messages postés41Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention23 février 2006 6 juil. 2005 à 11:27
Ptit Grumo > les 3 verifs sot faite, c'est une base de donnée SQL
Server, les espace je les ai ajouté avec les guillemet, etc... et j'ai
vérifié mes requêtes en remplacant ma variable dnas SQL Server et elles
sont corrects :D
Fehn
Messages postés41Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention23 février 2006 6 juil. 2005 à 11:46
Je vais te copier mon code directement pcq le debugger (debug.print) e
marchera pas vu qu'il se bloque a ma requete (je met juste le module
car c'est la ou le bas blaisse :()
Sub FilllabNomUser(txtNom As ListBox)
Dim rstNom As ADODB.Recordset
Dim strSQL As String
Dim objmyconn As ADODB.Connection
Dim strChaine As String
Set objmyconn = OpenSQLServerDB("dbauser", "dbauser")
Set rstNom = CreateObject("ADODB.RecordSet")
strSQL = "Select [company_name] from Actions" & _
"left inner join Sites on Actions.[action_siteto] = Sites.[site_id]" & _
"left inner join Companys on Actions.[action_siteto] = Sites.[site_id]" & _
fred.toto
Messages postés73Date d'inscriptionmardi 10 avril 2001StatutMembreDernière intervention 4 mars 2009 6 juil. 2005 à 11:52
je ne sais pas si Set rstNom = CreateObject("ADODB.RecordSet")
et Set rstNom = new ADODB.RecordSet font la meme chose, mais moi j'utilise tjs la seconde possibilité.
Sinon ça me parait pas mal moi je vois pas d'erreur flagrante
PtitGrumo
Messages postés205Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention28 novembre 20052 6 juil. 2005 à 12:22
Si t'oubli encore les espace dans ton SQL lol fait gaffe a ca c'est le genre d'erreur sur laquelle on peu rester bloqué des semaine lol mdr!
Bon sinon!
Tu ajoute a ton formulaire une textbox quer tu appel maTxt (ou autre)
et après la fabrication de ta variable strSQL tu mets
maTxt.text = strSQL
tu lance ta fonction et tu récupère dans ta textBox ta requète SQL!
Pourquoi?
une fois que tu as au mot près la requète qui va être exécutée et bin tu peu aller dans SQL la coller et la lancer! SQL te donnera plus d'info sur le pb!
De plus ca permettra de déceler vraiment les pb de syntaxe!
Fehn
Messages postés41Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention23 février 2006 6 juil. 2005 à 13:05
Beh au niveau de la requete, c'est pas vraiment le problème. Sous SQL
server elle marche (avec les where). Moi ce qui me faudrais c'est juste
la fonction qui permet de relier (comme je l'indique dans mon premier
post) mais je ne la connais pas. Je pense pas qu'il y ait une erreur
dans la requête même mais que c'est la fonction qui permet la jointure
qui est incorrect !
Fehn
Messages postés41Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention23 février 2006 6 juil. 2005 à 13:29
ok lol, je viens juste de comprendre le truc des espaces :D je suis
long a la detente. mais est il possible de faire des jointure en VBA
grace à Where NomTable1.ChampTable=NomTable2.ChampTable
Mais bon dur dur de te répondre vu que l'on ne sait pas quel sont les clé primaire ou indexe cad sur quelle table a tu le ID comme clé primaire et sur lesquel tu les a en indexe!
Fehn
Messages postés41Date d'inscriptionlundi 20 juin 2005StatutMembreDernière intervention23 février 2006 6 juil. 2005 à 13:59
lol je vous remercie pour le coup de main. mais en fait je peu pas
faire sans jointure car l'idée étant que lorsque l'on selectionne la
date d'echance de la tache qui est dans la table Action, le nom de la
company envers laquelle la tache est a effectué doit s'afficher dnas
une list box (la date d'echeance se selctionne dans une combobox) et si
on part de action pour aller vers Company, il faut passer par la table
Site.
Recapitulatif des clés primaire : ACTIONS : action_id, SITES : site_id,
COMPANYS : company_id. Les clés étrangères étant celle indiqué dnas la
jointure et je veux qu'il affiche company_name. De plus, l'erreur
engendrer apres mainte et mainte test est la suivante :
[Microsoft][ODBC SQL Server Driver][SQL Server]Les tables ou les
fonctions "Sites" et "Sites" ont le même nom d'exposé. Utiliser les
noms de corrélation pour les distinguer.
Voici mon code mis a jour:
Sub FilllstNomComp(lstComp As ListBox)
Dim rstComp As ADODB.Recordset
Dim strSQL As String
Dim objmyconn As ADODB.Connection
Dim strChaine As String
Set objmyconn = OpenSQLServerDB("dbauser", "dbauser")