Problème correction d'un exercice Access2003 avec

01/11-2005 à 20:12Bonjour.

Nouvelle sur ce forum, j'espère que l'un d'entre vous pourra m'apporter son aide.

J'essaye actuellement de m'auto-former à Access. Je suis en ce moment en train de travailler sur un livre d'exercices "Access 2003" chez Eni Editions. J'en suis aux modules VBA (et je n'ai en VBA que des notions très très approximatives mais j'm'accroche)

Dans la correction de l'un des exercices, voici ce que l'on me demande de saisir :

Private Sub ChoixFamille_Click()
Dim Requete As String, FamilleSélectionnée As String

'Mémorisation de la famille sélectionnée
FamilleSélectionnée = Choose([ChoixFamille], "Aromates", _
"Champignons", "Charcuterie", "Epicerie", "Légumes frais", _
"Légumes secs", "Poissons", "Produits laitiers", "Viandes", "Vins")
'Définition de la requête
Requete = "SELECT [MatPrem].[CodeMatPrem], [MatPrem].[Désignation], [MatPrem].[PAHT], [MatPrem].[QtéStock] FROM MatPrem WHERE [MatPrem].[Famille] = " & " '" & FamilleSélectionnée & "'"
'Application de la requête
Forms![Mod FiltreMatPrem].ListeMatPrem.RowSource = Requete & ";" _
Forms![Mod FiltreMatPrem].ListeMatPrem.Requery

End Sub



MAIS lorsque je saisis ces 2 lignes finales :

Forms![Mod FiltreMatPrem].ListeMatPrem.RowSource = Requete & ";" _
Forms![Mod FiltreMatPrem].ListeMatPrem.Requery

J'ai un avertissement "Erreur de compilation :
Attendu : fin d'instruction", et le 2e terme "Forms !" est en surbrillance.

J'ai essayé plein de trucs au hasard, fouillé dans mes livres, recherches internet, prière aux dieux du mégaoctet, rien n'y a fait je ne sais toujours pas pourquoi ça ne fonctionne pas.

J'ai bien conscience qu'étant novice mon message doit être très flou et brouillon. Excusez m'en à l'avance. Si l'un ou l'une d'entre vous peut m'aider ça sera vraiment super. Si c'est trop flou, ben... tant pis j'aurai tenté et merci d'avoir pris le temps de me lire (bon je vais remettre mes deux neurones en activité moi !)

Allweneed


  • Galeric
01/11-2005 à 21:40As tu essayé un vbcrlf, pour marquer la fin de l'instruction

Problème correction d'un exercice Access2003 avec
02/11-2005 à 19:51Bonjour Galeric

Et merci d'avoir pris la peine de me répondre.
Alors il a déjà fallu que je découvre ce qu'est un vbCrLf (ah quand je dis que je suis novice je pratique l'euphémisme à plein pot !)

Résultat des courses, voila comment ça fonctionne.

Soit j'enlève l'underscore inutile visiblement (après " ; " de la première instruction), je ne sais si je me trompe mais j'ai l'impression que VBA croyait que j'indiquais une seule et unique instruction alors qu'elles sont deux :

Forms![Mod FiltreMatPrem].ListeMatPrem.RowSource = Requete & " ; "
Forms![Mod FiltreMatPrem].ListeMatPrem.Requery

Soit, parce que je voulais comprendre comment fonctionnait vbCrLf, je fais ce qui suit mais est-ce que c'est bien dans les règles ? J'en doute !

Forms![Mod FiltreMatPrem].ListeMatPrem.RowSource = Requete & " ; " & vbCrLf & _
Forms![Mod FiltreMatPrem].ListeMatPrem.Requery

En tout cas ça fonctionne (j'espère comprendre exactement pourquoi !), c'est déjà ça et je te remercie de ta suggestion.

Allweneed

  • Galeric
03/11-2005 à 10:03vbCrLf indique la fin d'une instruction, et comme c'est ce qui manquait selon ton message d'erreur.

Quand a savoir si c'est dans les règles, il faudrait avoir l'avis d'un pro du VBA, je ne suis que touriste en la matière, je le visite épisodiquement lorsqu'il me faut creer quelque chose qui n'existe pas à l'état naturel dans access. [;)]

04/11-2005 à 17:52Bonsoir,

Dans la mesure où M$Access est un format fermé appellé à disparaitre, quitte à se formé autant apprendre directement le PHP/SQL.

Bon courage.


----------
image


Merci de vous identifier

« Forum technique (liste des messages)5 enregistrements / page 1/1