vb6 aide à une debutante au bord du gouffre - Programmation
Marsh Posté le 17-04-2001 à 11:42:00
Je te conseille de vérifier les guillemets qui me paraissent tout à fait bizarre au niveau de l'emplacement (notamment pour la partie écrite en bleue qui me semble être la clé du problème...
Marsh Posté le 17-04-2001 à 11:43:10
a l'aide mon projet n'avance pas
j'ai vraiment besoin l'aide d'un pro
Marsh Posté le 17-04-2001 à 11:44:06
Sympa pour moi
Marsh Posté le 17-04-2001 à 11:47:07
rc.Open c'est pas un appel de fct ?
Y a pas besoins de parentheses ?
rc.Open(" Bla bla SQL WHERE bibule AND machin chouette", ct, adOpenDynamic)
m'fin moi, vb,...
Marsh Posté le 17-04-2001 à 11:48:54
pourtant ils sont comme çà dans le bouquin où j'ai trouver une procedure similaire
j'ai deplacer les derniers en les mettant à la fin
toujours la meme reponse
Marsh Posté le 17-04-2001 à 11:48:56
J'ai rien dit : les appels de fonctions nécessitent des parenthèses uniquement quand les fonctions rendent qch, ce qui n'est pas le cas ici !
[edit]--Message édité par Kekman--[/edit]
Marsh Posté le 17-04-2001 à 11:51:54
J'ai trouvé ton pb :
rc.Open " SELECT TB_ART_TRAVAUX.*, TB_ARTICLES.*, TB_BL.*, TB_CLI.*, TB_TRAVAUX.* <= pas de guillemets ici !
From TB_ART_TRAVAUX, TB_ARTICLES, TB_BL, TB_CLI, TB_TRAVAUX
WHERE TB_ART_TRAVAUX.IDX_TRAV=TB_TRAVAUX.ID_TRAVAUX And TB_ART_TRAVAUX.REFX_ART=TB_ARTICLES.REF_ART And TB_BL.ID_BL=TB_TRAVAUX.IDX_BL_TRAV And TB_BL.IDX_CLI_BL=TB_CLI.ID_CLI", ct, adOpenDynamic
Marsh Posté le 17-04-2001 à 11:52:11
Essaye ceci :
rc.Open "SELECT TB_ART_TRAVAUX.*, TB_ARTICLES.*, TB_BL.*, TB_CLI.*, TB_TRAVAUX.*"
From TB_ART_TRAVAUX, TB_ARTICLES, TB_BL, TB_CLI, TB_TRAVAUX
WHERE TB_ART_TRAVAUX.IDX_TRAV=TB_TRAVAUX.ID_TRAVAUX And TB_ART_TRAVAUX.REFX_ART=TB_ARTICLES.REF_ART And TB_BL.ID_BL=TB_TRAVAUX.IDX_BL_TRAV And TB_BL.IDX_CLI_BL=TB_CLI.ID_CLI", ct, adOpenDynamic, adLockOptimistic, adCmdText
Marsh Posté le 17-04-2001 à 11:52:25
Comme dirait la ptite musique des "Chiffres et des lettres", le compte est bon !
Marsh Posté le 17-04-2001 à 11:53:17
Je confirme mon hypothèse moa ! Le guillemet est le pb !
Marsh Posté le 17-04-2001 à 11:58:38
en effet le guillemet doit etre le probleme
vb me rajoute automatiquement le guillemet avant le from rien a faire pour l'enlever
Marsh Posté le 17-04-2001 à 12:00:46
Si tu veux écrire ta clause sur plusieurs ligne c comme ça :
rc.Open "SELECT TB_ART_TRAVAUX.*, TB_ARTICLES.*, TB_BL.*, TB_CLI.*, TB_TRAVAUX.*" & _
"From TB_ART_TRAVAUX, TB_ARTICLES, TB_BL, TB_CLI, TB_TRAVAUX
WHERE TB_ART_TRAVAUX.IDX_TRAV=TB_TRAVAUX.ID_TRAVAUX And TB_ART_TRAVAUX.REFX_ART=TB_ARTICLES.REF_ART And TB_BL.ID_BL=TB_TRAVAUX.IDX_BL_TRAV And TB_BL.IDX_CLI_BL=TB_CLI.ID_CLI", ct, adOpenDynamic, adLockOptimistic, adCmdText
Marsh Posté le 17-04-2001 à 12:04:21
Yep : tout à fait d'accord avec toi Bendes...
Marsh Posté le 17-04-2001 à 12:07:53
"phrase1[espace]"[espace]_
& "phrase2[espace]"[espace]_
& "phrase3"
Marsh Posté le 17-04-2001 à 12:12:40
non n' y arrive toujours pas tant pis je vais chercher un fusil!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Marsh Posté le 17-04-2001 à 12:17:47
sinon par quel autre moyen je pourrais réussir à faire ce que je voulais faire au début c'est à dire :
afficher des donner dans une grille tant que les numeros de bl sont identiques
Marsh Posté le 17-04-2001 à 11:35:43
La procedure suivante est cencée recupérer dans plusieurs tables des données et de me les affichées dans une grille tant que les numeros de bl correspondent avec celui qui est affiche ailleurs dans la page.
Je n'arrive pas à la faire marcher il me dit qu'il attend une fin d'instruction après :
rc.Open " SELECT TB_ART_TRAVAUX.*, TB_ARTICLES.*, TB_BL.*, TB_CLI.*, TB_TRAVAUX.*"
From TB_ART_TRAVAUX, TB_ARTICLES, TB_BL, TB_CLI, TB_TRAVAUX
WHERE TB_ART_TRAVAUX.IDX_TRAV=TB_TRAVAUX.ID_TRAVAUX And TB_ART_TRAVAUX.REFX_ART=TB_ARTICLES.REF_ART And TB_BL.ID_BL=TB_TRAVAUX.IDX_BL_TRAV And TB_BL.IDX_CLI_BL=TB_CLI.ID_CLI", ct, adOpenDynamic
Voici donc la procedure merci d'avance :
Private Sub Form_Activate()
Dim ct As ADODB.Connection
Dim rc As ADODB.Recordset
Dim nombase As String
Dim i As Integer, lignes
Set ct = New ADODB.Connection
ct.Provider = "microsoft.jet.oledb.4.0"
nombase = "c:\mes documents\grilli97.mdb"
ct.ConnectionString = nombase
ct.Open
Set rc = New ADODB.Recordset
rc.Open " SELECT TB_ART_TRAVAUX.*, TB_ARTICLES.*, TB_BL.*, TB_CLI.*, TB_TRAVAUX.*"
From TB_ART_TRAVAUX, TB_ARTICLES, TB_BL, TB_CLI, TB_TRAVAUX
WHERE TB_ART_TRAVAUX.IDX_TRAV=TB_TRAVAUX.ID_TRAVAUX And TB_ART_TRAVAUX.REFX_ART=TB_ARTICLES.REF_ART And TB_BL.ID_BL=TB_TRAVAUX.IDX_BL_TRAV And TB_BL.IDX_CLI_BL=TB_CLI.ID_CLI", ct, adOpenDynamic
'je memorise le nombre de lignes renvoyées par le recordset
lignes = rc.Properties.Count
'je place le pointeur au début du recorsetrc.MoveFirst
'nombre de colonnes pour la grilleMSFlexGrid1.Cols = 6
'je modifie la taille des colonnes
MSFlexGrid1.AllowUserResizing = flexResizeColumns
'pas d'entete de lignesMSFlexGrid1.FixedRows = 1
'nombre de lignesMSFlexGrid1.Rows = 10
'titre de la permiere colonne
MSFlexGrid1.Col = 0
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "Référence"
'titre de la 2eme colone
MSFlexGrid1.Col = 1
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "Désignation"
'titre de la colonne 3
MSFlexGrid1.Col = 2
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "N° lot"
'titre de la colone 4
MSFlexGrid1.Col = 3
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "tarif"
'titre de la colonne 5
MSFlexGrid1.Col = 4
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "Quantité"
'titre de la colonne 6
MSFlexGrid1.Col = 5
MSFlexGrid1.Row = 0
MSFlexGrid1.Text = "Remise"
'je repete jqa la fin du recordset
Do While rc.EOF Or rc!nobl <> txtFields.DataField
'pour chaque ligne
MSFlexGrid1.Row = i + 1
'pour la première colone
MSFlexGrid1.Col = 0
MSFlexGrid1.Text = rc!Référence
'pour la colonne 2
MSFlexGrid1.Col = 1
MSFlexGrid1.Text = rc!designation
'pour la colonne 3
MSFlexGrid1.Col = 2
MSFlexGrid1.Text = rc!nolot
'pour la colonne 4
MSFlexGrid1.Col = 3
MSFlexGrid1.Text = rc!tarif
'pour la colonne 5
MSFlexGrid1.Col = 4
MSFlexGrid1.Text = rc!quantite
'pour la colonne 6
MSFlexGrid1.Col = 5
MSFlexGrid1.Text = rc!remise
'je passe à l'enregistrement suivant
rc.MoveNext
'j'incremente le pointeur de lignes
i = i + 1
'retour au debut de la boucle
Loop
End Sub