Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/08/2011, 08h50   #1
Membre du Club
 
Inscription : septembre 2008
Messages : 106
Détails du profil
Informations personnelles :
Âge : 42
Localisation : France

Informations forums :
Inscription : septembre 2008
Messages : 106
Points : 54
Points : 54
Par défaut create Table avec Liste deroulante

Bonjour le forum

je voudrais créer une table en vba j'ai donc trouvé sue le site la méthode SQL
que je ne connais pas du tout
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
      Dim strSQL As String
      Dim D
      D = Texte1
 
      strSQL = "CREATE TABLE " & D & " (" & _
               "id  COUNTER PRIMARY KEY, " & _
               "name varchar(30), " & _
               "address1 VARCHAR(40), " & _
               "address2 CHAR(40), " & _
               "Town VARCHAR(30), " & _
               "postcode VARCHAR(10), " & _
               "ville VARCHAR(30), " & _
               "phone VARCHAR(10));"
 
        Call DoCmd.RunSQL(strSQL)
qui fonction très bien mais peut on mettre une propriete dans le champ ville
"zone de liste déroulante + une requéte"

Merci David @+
David1259 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 12h17   #2
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 651
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 651
Points : 6 210
Points : 6 210
Envoyer un message via MSN à argyronet
Bonjour,

Non, tu ne peux pas avec du SQL.
Pour ce faire, il te faut passer par un objet TableDef d'un objet Database où tu définis les propriétés visées via un objet Property à savoir :
  • RowSourceType
  • RowSource
  • BoundColumn
  • ColumnCount
  • ColumnHeads
  • ColumnWidths
  • ListRows
  • ListWidth
  • LimitToList

Donc, le mieux pour ton cas est de créer la table avec ce processus plutôt qu'avec un CREATE TABLE et dans la foulée, définir les propriétés des champs souhaités...

Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 01/08/2011, 14h28   #3
Membre du Club
 
Inscription : septembre 2008
Messages : 106
Détails du profil
Informations personnelles :
Âge : 42
Localisation : France

Informations forums :
Inscription : septembre 2008
Messages : 106
Points : 54
Points : 54
Bonjour argyronet
cela explique pour quoi je ne trouve pas sur le net

j'ai suivi ton conseil
Mais encore un petit problème
j'ai une erreur
Code :
1
2
 
Attendu:fin d'instruction
sur le mot "Secteur1"
Code :
1
2
3
4
 
    tdf!Numpersonne.Properties.Append _
           tdf.CreateProperty("RowSource", dbText, _
           "SELECT T_Listepersonne.[personne], T_Listepersonne.NOM_PRENOM, T_Listepersonne.SECTEURS FROM T_Listepersonne WHERE (((T_Listepersonne.SECTEURS)="secteur1"));")
Je voudrais faire un trie par rapport au secteur
Pourrais tu m’aider SVP

Merci David A+
David1259 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 15h44   #4
Rédacteur/Modérateur

 
Avatar de argyronet
 
Homme Jean-Philippe AMBROSINO
Panseur de bobos en solutions ETL
Inscription : mai 2004
Messages : 3 651
Détails du profil
Informations personnelles :
Nom : Homme Jean-Philippe AMBROSINO
Localisation : France

Informations professionnelles :
Activité : Panseur de bobos en solutions ETL
Secteur : Finance

Informations forums :
Inscription : mai 2004
Messages : 3 651
Points : 6 210
Points : 6 210
Envoyer un message via MSN à argyronet
Humm, pas de guillemet qui encapsule des guillemets, sinon, le code y perd son latin...

Et puis, il vaut mieux procéder de façon plus générique :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 
Sub TestTableDropList()
Const T                                                As String = "Table1"
    SQL = "SELECT personne, NOM_PRENOM, SECTEURS FROM T_Listepersonne WHERE .SECTEURS='secteur1'"
    CreateComboBoxField T, "Numpersonne", SQL, 1, 3, "0 cm,4 cm,4 cm", "8 cm"
End Sub
 
Sub CreateComboBoxField(ByVal TableName As String, ByVal FieldName As String, ByVal SQL As String, ByVal BoundColumn As Integer, ByVal ColumnCount As Integer, ByVal ColumnWidths As String, ByVal ColumnWidth As String)
Dim oDB                                                As DAO.Database
Dim oTdf                                               As DAO.TableDef
Dim oFld                                               As DAO.Field
Dim oPrp                                               As DAO.Property
 
    On Error GoTo L_ErrCreateComboBoxField
 
    Set oDB = CurrentDb
    Set oTdf = oDB.TableDefs(TableName)
    On Error Resume Next
    Set oFld = oTdf.Fields(FieldName)
    If Err.Number Then
        Set oFld = oTdf.CreateField(FieldName, dbText, 1)
        oTdf.Fields.Append oFld
    Else
        Set oFld = oTdf.Fields(FieldName)
    End If
    With oFld
        On Error Resume Next
        Set oPrp = .Properties("DisplayControl")
        If Err.Number Then
            .Properties.Append .CreateProperty("DisplayControl", dbInteger, acComboBox)
            .Properties.Append .CreateProperty("RowSourceType", dbText, "Table/Query")
            .Properties.Append .CreateProperty("RowSource", dbText, SQL)
            .Properties.Append .CreateProperty("BoundColumn", dbInteger, BoundColumn)
            .Properties.Append .CreateProperty("ColumnCount", dbInteger, ColumnCount)
            .Properties.Append .CreateProperty("ListWidths", dbText, ColumnWidths)
            .Properties.Append .CreateProperty("ListWidth", dbSingle, ColumnWidth)
        Else
            .Properties.Append .Properties("RowSourceType") = "Table/Query"
            .Properties.Append .Properties("RowSource") = SQL
            .Properties.Append .Properties("BoundColumn") = BoundColumn
            .Properties.Append .Properties("ColumnCount") = ColumnCount
            .Properties.Append .Properties("ListWidths") = ColumnWidths
            .Properties.Append .Properties("ListWidth") = ColumnWidth
        End If
    End With
    oDB.Close
 
    On Error GoTo 0
L_ExCreateComboBoxField:
    Set oPrp = Nothing
    Set oFld = Nothing
    Set oTdf = Nothing
    Set oDB = Nothing
    Exit Sub
 
L_ErrCreateComboBoxField:
    MsgBox Err.Description, 48, Err.Source
    Resume L_ExCreateComboBoxField
End Sub
Argy
__________________
Ils comptent sur vous...

Ce qui donne son sens à la communication, c´est la réponse que l´on obtient. Si vous n´obtenez pas la réponse voulue, communiquez différemment.

Web Site@Mail
Livres : VBA pour OFFICE 2007 et MICROSOFT ACCESS 2007
Nouveau Tutoriel : Déployer vos applications avec Microsoft Access 2010
MDB Viewer : Visionneuse Access v4.0
argyronet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/08/2011, 19h29   #5
Membre du Club
 
Inscription : septembre 2008
Messages : 106
Détails du profil
Informations personnelles :
Âge : 42
Localisation : France

Informations forums :
Inscription : septembre 2008
Messages : 106
Points : 54
Points : 54
Merci pour ton aide

Je me suis pas embêté j'ai créé une requête et je l'ai raccord et ça marche
mais je garde ta solution en car
merci beaucoup pour ton aide
Salut
David1259 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h42.


 
 
 
 
Partenaires

Hébergement Web