begin process at 2012 02 15 18:07:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Visual Basic & VB.NET

 > 

Archives Visual Basic

 > 

VBA

 > 

VBA - ACCESS 2002 SP3 - Création formulaire - Help !!!!!


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

VBA - ACCESS 2002 SP3 - Création formulaire - Help !!!!!

lundi 8 novembre 2004 à 00:21:36 | VBA - ACCESS 2002 SP3 - Création formulaire - Help !!!!!

trymeup

Bonjour, je suis vraiment novice en VBA et j'ai un soucis que je n'arrive pas à régler.

J'ai une requête qui me renvoie des résultats avec un nombre de colonnes qui peut varier. Donc impossible de l'afficher dans un formulaire figé. Aussi, j'ai pas mal recherché de code solutionner ce problème, et dans les sources j'ai trouvé le code suivant :

http://www.vbfrance.com/code.aspx?ID=26450

Dans le principe c'est tout à fait ce qu'il me faut. Seulement voila :

1) Je n'ai pas les composants DAO dans mon Access 2002
(normal ?) mais que ADO

2) ctl.DeleteControl "F_AFFICHAGE", ctl.Name ne marche pas chez moi !

Il faudrait adapter ce bout de code en ADO, ce dont je suis incapable, et faire en sorte que cette fonction de suppression des controles du formulaire fonctionne

Merci bcp de votre aide
lundi 8 novembre 2004 à 10:24:32 | Re : VBA - ACCESS 2002 SP3 - Création formulaire - Help !!!!!

inthecorner

Quand tu es dans Microsoft Visual Basic..
Tu vas dans Outils--->Références.
Et tu ajoutes Microsoft DAO 3.6 Object Library

Amitiés
lundi 8 novembre 2004 à 14:22:16 | Re : VBA - ACCESS 2002 SP3 - Création formulaire - Help !!!!!

trymeup

Merci pour le DAO, effectivement j'avais pas du tout cherché ca au bon endroit...

Bon j'ai adapté le code mentionné plus haut à mes exigences :


Public Function create_form(sql As String) As Boolean
Dim frm As Form
Dim rst As DAO.Recordset
Dim Db As DAO.Database
Set Db = Application.CurrentDb
Dim ctl As Control
Dim i, j As Integer
' --Ouvrir le formulaire en mode modification et caché
DoCmd.OpenForm "Forml_X_Etats", acDesign, , , , acHidden
' --suppression de tous les contrôles avant de les créer de nouveau
For Each ctl In Forms!Forml_X_Etats.Controls
ctl.DeleteControl "Forml_X_Etats", ctl.Name
Next ctl
' --Source de données de mon formulaire
Forms![Forml_X_Etats].RecordSource = sql
Set rst = Db.OpenRecordset(sql)
' --nous ne pensons pas que vous aurez plus de 100 contrôles
Dim controle(0 To 100) As Control
' --Création des contrôles
If rst.RecordCount <> 0 Then
i = 0
j = 1000
While i < rst.Fields.Count

' -- Créer le contrôle i
Set controle(i) = CreateControl("Forml_X_Etats", acTextBox)
' --lui affecter un nom
controle(i).Name = rst.Fields(i).Name
' --le positionner sur le formulaire
controle(i).left = 100 + j
' --Définir sa largeur
controle(i).Width = 1150
' --source de données de ce contrôle
controle(i).ControlSource = rst.Fields(i).Name

i = i + 1
j = j + 1150
Wend
End If

rst.Close
Set rst = Nothing
Set Db = Nothing
' --Sauvegarder le formulaire
DoCmd.Save acForm, "Forml_X_Etats"
DoCmd.Close acForm, "Forml_X_Etats"
End Function



Le code fonctionne si le formulaire initial est vide. Seulement s'il comporte deja des controles, la fonction pour les supprimer ne marche pas :

ctl.DeleteControl "Forml_X_Etats", ctl.Name[/i] ne marche pas et me donne une erreur 438 "propriété ou méthode non gérée par cet objet"

Par quoi la remplacer pour vider mon formulaire ?

Deuxième petite chose, j'aimerai que le format des contrôles que j'ajoute soit le format "standard" (nombres avec le séparateur de millier en blanc), mais je ne connais pas la syntaxe a ajouter.

Merci
lundi 8 novembre 2004 à 15:03:30 | Re : VBA - ACCESS 2002 SP3 - Création formulaire - Help !!!!!

trymeup

heu... je vais me répondre tout seul :-)

j'ai résolu mon problème pour effacter les controles existant, il faut simplement modifier la fonction. De plus, j'ajoute qu'utilisée telle quelle, elle ne fait pas ce qu'on lui demande: en effet, le fait de supprimer le controle dans la boucle For Each, fait sauter access au controle suivant. Donc la boucle supprime un controle sur deux. Voici le code que j'ai mis pour corriger tout cela, et qui fonctionne tant bien que mal:


' --suppression de tous les contrôles avant de les créer de nouveau
boucle:
i = 0

For Each ctl In Forms!Forml_X_Etats.Controls
i = 1
DeleteControl "Forml_X_Etats", ctl.Name
Next ctl

While i = 1
GoTo boucle:
Wend


Merci pour ceux qui voudront bien répondre a ma deuxieme question, a savoir comment affecter le format "standard" a un controle.


Cette discussion est classée dans : vba, access, code, formulaire, sp3


Répondre à ce message

Sujets en rapport avec ce message

Exportation d'un sous formulaire access en HTML [ par Ben ] Bonjour je désirerais exporter un sous formulaire access au format HTML grace à un bouton de commande placé sur ce formulaire, mais voila je ne connai PB VBA ACCESS [ par milou ] Salut a tous,Mon probleme est le suivant :J'ai un formulaire avec un sous formulaire. J'aimerai pouvoir prendre les valeur des controles qu il y a dan code vba pour lier et afficher jes enregistrements d' un formulaire relationnel [ par micebos ] amicallement votre collègue programmeur!salut!je voudrais savoir comment écrit_t_on, le code vba destiné à afficher les enregistrements d' un formulai Code VBA pour Access [ par fakir51 ] Bonjour,j' ai un formulaire comprennant plusieur champ et j'aimerai faire une procédure évènementielle qui me permette d afficher un enregistrement gr Probleme d'enregistrement de donnees sous un formulaire Access [ par SPEEDERMENN ] Slt,J'ai un formulaire possédant des champs, et un date and time picker control.j'ai un bouton enregistrer crée par l'assistant de Access(il génère d' execution du code vb dans access [ par oni0013 ] Salut,J'ai mit du code visual basic dans access dans un formulaire, mais je souhaiterai que ce code soit executé à chaque fois qu'un nouvel enregistre Execution du code vb dans access [ par oni0013 ] Salut,J'ai mis du code visual basic dans access dans un formulaire, mais je souhaiterai que ce code soit executé à chaque fois qu'un nouvel enregistre access VBA : ordre de chargement de sous-formulaire [ par supergizmo ] salut dans un formulaire, j'ai mis plusieurs sous-formulaire (huit au total). Mais la moitié de ces sous-formulaires doivent se chargés après les autr Dates sous VBA ACCESS [ par Clonk ] Salut!J'ai un prob sous Access.Certains l'ont peut être remarqué, mais il arrive lorsque mmC facile à régler dans un code tout bête, mais perso j'util Transformez un formulaire access en état avec VBA [ par francky202 ] Bonjourj'aimerai savoir si l'un d'entre vous pouvais m'epliquez comment faire pour enregistrer un formulaire en le mettant sous un état le tout de man


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,593 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales