[access]tirer des info d'un formulaire en vba

tirer des info d'un formulaire en vba [access] - VB/VBA/VBS - Programmation

Marsh Posté le 30-01-2005 à 01:51:36    

Salut
 
 
je voulais savoir comment prendreune info dans une zone de liste d'un formulaire pour s'enservir dans vba.
j'explique : j'ai fai un formulaire d'ajout et sur mon bouton g associé une macro avec requete d'ajout et une mise a jour d'une autre table mai g besoin de trois mise a jourcar g 3 parametre differents selon si la personne a selectionné "C", "TD", ou "TP". je n'ai pas fai de visual sous acces donc g essayé de m'ensortir et çà donne çà:
 
 
 
Public Sub BilanForm()
 
Dim mc As String
Dim mtd As String
Dim mtp As String
Dim l As String
 
 
 
mc = "MMaJ.RemplissageTableC"
mtd = "MMaJ.RemplissageTableTD"
mtp = "MMaJ.RemplissageTableTP"
l = "Formulaires![FAjoutCours]![Type_cours]"
 
 
 
If l = "C" Then
    DoCmd.RunMacro mc
Else
    If l = "TD" Then
        DoCmd.RunMacro mtd
    Else
        If l = "TP" Then
            DoCmd.RunMacro mtp
        End If
    End If
End If
 
 
End Sub
 
 
Quelqu'un pourrait me dire ce qui ne va pas?
 
 
merci

Reply

Marsh Posté le 30-01-2005 à 01:51:36   

Reply

Marsh Posté le 30-01-2005 à 08:54:23    

benj06 a écrit :


If l = "C" Then
    DoCmd.RunMacro mc
Else
    If l = "TD" Then
        DoCmd.RunMacro mtd
    Else
        If l = "TP" Then
            DoCmd.RunMacro mtp
        End If
    End If
End If


Remplaces tout cela par :

Code :
  1. If l = "C" Then
  2.     DoCmd.RunMacro mc
  3. ElseIf l = "TD" Then
  4.     DoCmd.RunMacro mtd
  5. ElseIf l = "TP" Then
  6.     DoCmd.RunMacro mtp
  7. End If

C'est peut être bon (ps : je ne me suis pas intéressé au code avant).

Reply

Marsh Posté le 30-01-2005 à 09:21:18    

çà va  pa mai merci quan meme

Reply

Marsh Posté le 30-01-2005 à 10:13:48    

Y'a une erreur sur cette ligne :

l = "Formulaires![FAjoutCours]![Type_cours]"


 
Il faut que tu enlèves les guillemets. Parce que là, tu définit une chaîne de caractère avec dedans tout le truc.
 
et évidemment, la chaîne "Formulaires![FAjoutCours]![Type_cours]" est différente de la chaîne "C" ou "TD" ;)
 
Donc voici le code qui devrai fonctionner (en même temps je l'ai un peu modifié :
 

Code :
  1. Public Sub BilanForm()
  2.   Select Case Formulaires![FAjoutCours]![Type_cours].Value
  3.     Case "C":
  4.       DoCmd.RunMacro "MMaJ.RemplissageTableC"
  5.     Case "TD":
  6.       DoCmd.RunMacro "MMaJ.RemplissageTableTD"
  7.     Case "TP:"
  8.       DoCmd.RunMacro "MMaJ.RemplissageTableTP"
  9.   End Select
  10. End Sub


Message édité par FlorentG le 30-01-2005 à 10:14:09
Reply

Marsh Posté le 30-01-2005 à 12:52:08    

Merci, çà marche pas mais je pense que je fais un erreur après; j'ai donc le bouton qui lance la macro dans laquelle j'ai mis un ExecuterCode et dans le nom du code j'ai mis BilanForm.
 
est ce bien comme que je peux le lancer?
 
merci

Reply

Marsh Posté le 30-01-2005 à 13:06:37    

Sinon tu peux utiliser ce code au lieu d'utiliser une macro, si tu veux exécuter une requête. Supposons que ta requête s'appelle "Pouet", tu fais :

CurrentDb.QueryDefs("Pouet" ).Execute

Reply

Marsh Posté le 30-01-2005 à 13:14:47    


Private Sub Commande19_Click()
 
 CurrentDb.QueryDefs("RAjoutCours" ).Execute
 
  Select Case Formulaires![FAjoutCours]![Type_cours].Value
 
    Case "C":
      DoCmd.RunMacro "MMaJ.RemplissageTableC"
    Case "TD":
      DoCmd.RunMacro "MMaJ.RemplissageTableTD"
    Case "TP":
      DoCmd.RunMacro "MMaJ.RemplissageTableTP"
 
  End Select
 
End Sub
 
 
j'ai mis çà en procedure evenementielle de mon bouton, il me dit qu'il y a trop peu de parametres

Reply

Marsh Posté le 30-01-2005 à 13:28:37    

Y'a-t-il des paramètres dans ta requête "RajoutCours" ?

Reply

Marsh Posté le 30-01-2005 à 13:33:57    

non c une requete d'ajout simple tien voici le code SQL
 
 
INSERT INTO [Table Emploi_du_temps] ( Numero_semaine, [Numero-année], [Numero-groupe], [Code-matiere], Type_cours, [Heure-début], [Heure-fin], Durée, Numero_intervenant )
SELECT [Formulaires]![FAjoutCours]![Numero_semaine] AS Expr1, [Formulaires]![FAjoutCours]![Numero-année] AS Expr2, [Formulaires]![FAjoutCours]![Numero-groupe] AS Expr3, [Formulaires]![FAjoutCours]![Code-matiere] AS Expr4, [Formulaires]![FAjoutCours]![Type_cours] AS Expr5, [Formulaires]![FAjoutCours]![Heure-début] AS Expr6, [Formulaires]![FAjoutCours]![Heure-fin] AS Expr7, [Formulaires]![FAjoutCours]![Durée] AS Expr8, [Formulaires]![FAjoutCours]![Numero_intervenant] AS Expr9
FROM [Table Emploi_du_temps];

Reply

Marsh Posté le 30-01-2005 à 13:36:24    

Et quand tu lances cette requête à la main, il ne te demande rien ?

Reply

Marsh Posté le 30-01-2005 à 13:36:24   

Reply

Marsh Posté le 30-01-2005 à 13:48:34    

oui il me demande ce qui devrait etre dans les controles du formulaires.
 mai quan je met un bouton dans le formulaire auquel je lie une macro qui lance cette requete, il me demande rien.

Reply

Marsh Posté le 30-01-2005 à 13:49:51    

Donc quand tu exécute la requête (avec currentdb.querydef....), assure-toi que le formulaire soit ouvert avec les données présentes, sinon c'est normal qu'il te fasse une erreur, car il trouve pas ces données..

Reply

Marsh Posté le 30-01-2005 à 13:55:09    

il est ouvert car le bouton qui execute ce code se trouve sur le formulaire d'ajout.
Est ce que je pe t'envoyer mon fichier pour que tu regardes?
merci

Reply

Marsh Posté le 30-01-2005 à 13:56:32    

Euh je suis déjà en plein Access, donc j'aurais pas trop le temps aujourd'hui :/

Reply

Marsh Posté le 30-01-2005 à 13:58:23    

tan pi merci quan meme pour l'aide

Reply

Sujets relatifs:

Leave a Replay

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