OVH Cloud OVH Cloud

format oui/non en VBA

9 réponses
Avatar
Pascal
hello,
le code ci-après fonctionne mais me donne une erreur sur un champ oui/non
je n'arrive pas a indiquer lors de la création du champ "Ts_selection" que
le format est oui/non
de ce fait lorsque j'ouvre cette table je ne dispose pas de case à cocher
si kkun passe par ici aurait'il la gentillesse de m'indiquer la bonne
formule
merci d'avance
Pascal



----------------------------------------------------
Public Function CréerTable()
Dim Db As DAO.Database
Dim Tbl As DAO.TableDef
Dim fld As DAO.Field
Dim idx As DAO.Index
Dim Prp As DAO.Property
Const NomTable As String = "tbPrtList"

Set Db = CurrentDb() ' Ouverture base de données
Set Tbl = Db.CreateTableDef(NomTable) 'Création d'une table

Set fld = Tbl.CreateField("no_Prt", dbLong) 'création du premier champ
fld.OrdinalPosition = 1 'champ position 1
fld.Attributes = dbAutoIncrField 'définition numéroauto
Tbl.Fields.Append fld 'ajout du champ dans la
table

'***********************************
Set fld = Tbl.CreateField("ts_Selection", dbBoolean) 'création du
deuxième champ
fld.OrdinalPosition = 2 'champ position 2
fld.Type = dbBoolean
Tbl.Fields.Append fld 'ajout du champ dans la
table
'*************************************

Db.TableDefs.Append Tbl 'ajoute la table à la base

RefreshDatabaseWindow 'rafraichissement de la fenêtre
base de données

End function

9 réponses

Avatar
Jessy Sempere
Bonsoir

Il faut utiliser les propriétés pour faire ce que tu souhaite, de mémoire il
me semble que ça doit être un truc dans ce genre :

Set prp = fld.CreateProperty("Format", dbText, "YesNo")
fld.Properties.Append prp
Set prp = fld.CreateProperty("DisplayControl", dbInteger, 106)
fld.Properties.Append prp

Ce code doit être placé juste avant ta ligne qui ajoute le champ :
Tbl.Fields.Append fld 'ajout du champ dans la
table
'*************************************


Normalement ça doit être ça...


--
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Pascal" a écrit dans le message de news:

hello,
le code ci-après fonctionne mais me donne une erreur sur un champ oui/non
je n'arrive pas a indiquer lors de la création du champ "Ts_selection" que
le format est oui/non
de ce fait lorsque j'ouvre cette table je ne dispose pas de case à cocher
si kkun passe par ici aurait'il la gentillesse de m'indiquer la bonne
formule
merci d'avance
Pascal



----------------------------------------------------
Public Function CréerTable()
Dim Db As DAO.Database
Dim Tbl As DAO.TableDef
Dim fld As DAO.Field
Dim idx As DAO.Index
Dim Prp As DAO.Property
Const NomTable As String = "tbPrtList"

Set Db = CurrentDb() ' Ouverture base de données
Set Tbl = Db.CreateTableDef(NomTable) 'Création d'une table

Set fld = Tbl.CreateField("no_Prt", dbLong) 'création du premier
champ
fld.OrdinalPosition = 1 'champ position 1
fld.Attributes = dbAutoIncrField 'définition numéroauto
Tbl.Fields.Append fld 'ajout du champ dans la
table

'***********************************
Set fld = Tbl.CreateField("ts_Selection", dbBoolean) 'création du
deuxième champ
fld.OrdinalPosition = 2 'champ position 2
fld.Type = dbBoolean
Tbl.Fields.Append fld 'ajout du champ dans la
table
'*************************************

Db.TableDefs.Append Tbl 'ajoute la table à la base

RefreshDatabaseWindow 'rafraichissement de la fenêtre
base de données

End function


Avatar
Pascal
décidement, crois tu qu'un abonnement ne serait pas préférable?
je te remercie une nouvelle fois
Je découvre et adore ACCESS
Pascal

"Jessy Sempere" a écrit dans le message de news:

Bonsoir

Il faut utiliser les propriétés pour faire ce que tu souhaite, de mémoire
il me semble que ça doit être un truc dans ce genre :

Set prp = fld.CreateProperty("Format", dbText, "YesNo")
fld.Properties.Append prp
Set prp = fld.CreateProperty("DisplayControl", dbInteger, 106)
fld.Properties.Append prp

Ce code doit être placé juste avant ta ligne qui ajoute le champ :
Tbl.Fields.Append fld 'ajout du champ dans
la table
'*************************************


Normalement ça doit être ça...


--
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Pascal" a écrit dans le message de news:

hello,
le code ci-après fonctionne mais me donne une erreur sur un champ oui/non
je n'arrive pas a indiquer lors de la création du champ "Ts_selection"
que le format est oui/non
de ce fait lorsque j'ouvre cette table je ne dispose pas de case à cocher
si kkun passe par ici aurait'il la gentillesse de m'indiquer la bonne
formule
merci d'avance
Pascal



----------------------------------------------------
Public Function CréerTable()
Dim Db As DAO.Database
Dim Tbl As DAO.TableDef
Dim fld As DAO.Field
Dim idx As DAO.Index
Dim Prp As DAO.Property
Const NomTable As String = "tbPrtList"

Set Db = CurrentDb() ' Ouverture base de données
Set Tbl = Db.CreateTableDef(NomTable) 'Création d'une table

Set fld = Tbl.CreateField("no_Prt", dbLong) 'création du premier
champ
fld.OrdinalPosition = 1 'champ position 1
fld.Attributes = dbAutoIncrField 'définition numéroauto
Tbl.Fields.Append fld 'ajout du champ dans la
table

'***********************************
Set fld = Tbl.CreateField("ts_Selection", dbBoolean) 'création du
deuxième champ
fld.OrdinalPosition = 2 'champ position 2
fld.Type = dbBoolean
Tbl.Fields.Append fld 'ajout du champ dans
la table
'*************************************

Db.TableDefs.Append Tbl 'ajoute la table à la base

RefreshDatabaseWindow 'rafraichissement de la
fenêtre base de données

End function






Avatar
Jessy Sempere
Bonjour

Fais gaffe... Vu les heures auxquelles tu postes, tu es déjà atteint par le
virus Access.
Perso j'adore toujours autant (voir plus) depuis 1994... ;-))

--
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Pascal" a écrit dans le message de news:
%
décidement, crois tu qu'un abonnement ne serait pas préférable?
je te remercie une nouvelle fois
Je découvre et adore ACCESS
Pascal

"Jessy Sempere" a écrit dans le message de
news:
Bonsoir

Il faut utiliser les propriétés pour faire ce que tu souhaite, de mémoire
il me semble que ça doit être un truc dans ce genre :

Set prp = fld.CreateProperty("Format", dbText, "YesNo")
fld.Properties.Append prp
Set prp = fld.CreateProperty("DisplayControl", dbInteger, 106)
fld.Properties.Append prp

Ce code doit être placé juste avant ta ligne qui ajoute le champ :
Tbl.Fields.Append fld 'ajout du champ dans
la table
'*************************************


Normalement ça doit être ça...


--
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Pascal" a écrit dans le message de news:

hello,
le code ci-après fonctionne mais me donne une erreur sur un champ
oui/non
je n'arrive pas a indiquer lors de la création du champ "Ts_selection"
que le format est oui/non
de ce fait lorsque j'ouvre cette table je ne dispose pas de case à
cocher
si kkun passe par ici aurait'il la gentillesse de m'indiquer la bonne
formule
merci d'avance
Pascal



----------------------------------------------------
Public Function CréerTable()
Dim Db As DAO.Database
Dim Tbl As DAO.TableDef
Dim fld As DAO.Field
Dim idx As DAO.Index
Dim Prp As DAO.Property
Const NomTable As String = "tbPrtList"

Set Db = CurrentDb() ' Ouverture base de données
Set Tbl = Db.CreateTableDef(NomTable) 'Création d'une table

Set fld = Tbl.CreateField("no_Prt", dbLong) 'création du premier
champ
fld.OrdinalPosition = 1 'champ position 1
fld.Attributes = dbAutoIncrField 'définition numéroauto
Tbl.Fields.Append fld 'ajout du champ dans
la table

'***********************************
Set fld = Tbl.CreateField("ts_Selection", dbBoolean) 'création du
deuxième champ
fld.OrdinalPosition = 2 'champ position 2
fld.Type = dbBoolean
Tbl.Fields.Append fld 'ajout du champ dans
la table
'*************************************

Db.TableDefs.Append Tbl 'ajoute la table à la base

RefreshDatabaseWindow 'rafraichissement de la
fenêtre base de données

End function









Avatar
Pascal
hello mister Jessy
cela me donne une ereur :OPERATION NON VALIDE
sur fld.Properties.Append Prp

ai essayer également après l'ajout dans la table (Db.TableDefs.Append
l )
ceci:
Set tdf = Db.TableDefs(NomTable) ' entrée des propriétés
Set fld = Tbl.Fields("ts_selection")
Set Prp = fld.CreateProperty("Format", dbText,"yesno")
etc...

euhhhhhhhhh je peut encore bénéficier de tes lumières ou mon crédit est
expiré?
Merci à toi
Pascal

---------Code-----------------------------
Public Function CréerTableDAO()
Dim Db As DAO.Database
Dim Tbl As DAO.TableDef
Dim fld As DAO.Field
Dim idx As DAO.Index
Dim Prp As DAO.Property
Const NomTable As String = "tbPrtList"


Set Db = CurrentDb() ' Ouverture base de données
Set Tbl = Db.CreateTableDef(NomTable) 'Création d'une table

Set fld = Tbl.CreateField("no_Prt", dbLong) 'création du premier champ
fld.OrdinalPosition = 1 'champ position 1
'fld.Attributes = dbAutoIncrField 'définition numéroauto
Tbl.Fields.Append fld 'ajout du champ dans la
table


Set fld = Tbl.CreateField("ts_Selection", dbBoolean) 'création du
cinquième champ
fld.OrdinalPosition = 5 'champ position 5
fld.Type = dbBoolean
'les propriétés
Set Prp = fld.CreateProperty("Format", dbText,"yesno")
' Prp.Value = "yesno" <----------------------------ai
essayer ceci mais cela ne change rien ************
fld.Properties.Append Prp
<----------------------------------------------erreur se produit
ici***********************
Set Prp = fld.CreateProperty("DisplayControl", dbInteger, 106)
fld.Properties.Append Prp


Tbl.Fields.Append fld 'ajout du champ dans la
table


Db.TableDefs.Append Tbl 'ajoute la table à la
base

RefreshDatabaseWindow 'rafraichissement de la
fenêtre base de données

Set tdf = Nothing
Set fld = Nothing
Set Db = Nothing
Set Tbl = Nothing

End Function
"Jessy Sempere" a écrit dans le message de news:

Bonjour

Fais gaffe... Vu les heures auxquelles tu postes, tu es déjà atteint par
le virus Access.
Perso j'adore toujours autant (voir plus) depuis 1994... ;-))

--
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Pascal" a écrit dans le message de news:
%
décidement, crois tu qu'un abonnement ne serait pas préférable?
je te remercie une nouvelle fois
Je découvre et adore ACCESS
Pascal

"Jessy Sempere" a écrit dans le message de
news:
Bonsoir

Il faut utiliser les propriétés pour faire ce que tu souhaite, de
mémoire il me semble que ça doit être un truc dans ce genre :

Set prp = fld.CreateProperty("Format", dbText, "YesNo")
fld.Properties.Append prp
Set prp = fld.CreateProperty("DisplayControl", dbInteger, 106)
fld.Properties.Append prp

Ce code doit être placé juste avant ta ligne qui ajoute le champ :
Tbl.Fields.Append fld 'ajout du champ dans
la table
'*************************************


Normalement ça doit être ça...


--
@+
Jessy Sempere
------------------------------------
Site @ccess : http://access.fr.free.fr/
Pour l'efficacité de tous :
http://www.mpfa.info/
------------------------------------
"Pascal" a écrit dans le message de news:

hello,
le code ci-après fonctionne mais me donne une erreur sur un champ
oui/non
je n'arrive pas a indiquer lors de la création du champ "Ts_selection"
que le format est oui/non
de ce fait lorsque j'ouvre cette table je ne dispose pas de case à
cocher
si kkun passe par ici aurait'il la gentillesse de m'indiquer la bonne
formule
merci d'avance
Pascal



----------------------------------------------------
Public Function CréerTable()
Dim Db As DAO.Database
Dim Tbl As DAO.TableDef
Dim fld As DAO.Field
Dim idx As DAO.Index
Dim Prp As DAO.Property
Const NomTable As String = "tbPrtList"

Set Db = CurrentDb() ' Ouverture base de données
Set Tbl = Db.CreateTableDef(NomTable) 'Création d'une table

Set fld = Tbl.CreateField("no_Prt", dbLong) 'création du premier
champ
fld.OrdinalPosition = 1 'champ position 1
fld.Attributes = dbAutoIncrField 'définition numéroauto
Tbl.Fields.Append fld 'ajout du champ dans
la table

'***********************************
Set fld = Tbl.CreateField("ts_Selection", dbBoolean) 'création du
deuxième champ
fld.OrdinalPosition = 2 'champ position 2
fld.Type = dbBoolean
Tbl.Fields.Append fld 'ajout du champ dans
la table
'*************************************

Db.TableDefs.Append Tbl 'ajoute la table à la base

RefreshDatabaseWindow 'rafraichissement de la
fenêtre base de données

End function













Avatar
Eric
Bonjour,

En relisant l'aide, la création dune propriété ne peut être faite que
sur un objet permanent. Donc tu crées ta table normalement sans définir
les propriétés connexes des champs autre que le type (et la longueur
pour un champ Texte).
Puis après avoir ajouter à la collection des tables la nouvelle table,
tu crées les propriétés spécifiques des champs.Ca donnerait :*

Public Function CréerTable()
Dim Db As DAO.Database
Dim Tbl As DAO.TableDef
Dim fld As DAO.Field
Dim idx As DAO.Index
Dim Prp As DAO.Property
Const NomTable As String = "tbPrtList"

Set Db = CurrentDb() ' Ouverture base de données
Set Tbl = Db.CreateTableDef(NomTable) 'Création d'une table

Set fld = Tbl.CreateField("no_Prt", dbLong)'création du premier champ
fld.OrdinalPosition = 1 'champ position 1
fld.Attributes = dbAutoIncrField 'définition numéroauto
Tbl.Fields.Append fld 'ajout du champ dans la table

'***********************************
Set fld = Tbl.CreateField("ts_Selection", dbBoolean)
fld.OrdinalPosition = 2 'champ position 2
fld.Type = dbBoolean
Tbl.Fields.Append fld 'ajout du champ dans la table
'*************************************

Db.TableDefs.Append Tbl 'ajoute la table à la base

RefreshDatabaseWindow 'rafraichissement de la fenêtre base

' ############## C'est ici qu'il faut créer les propriétés #########
Set Tbl = Db.TableDefs(NomTable)
Set fld = Tbl.Fields("ts_Selection")
Set Prp = fld.CreateProperty("Format", dbText, "Yes/No")
fld.Properties.Append Prp
Set Prp = fld.CreateProperty("DisplayControl", dbInteger, 106)
fld.Properties.Append Prp

Set Prp = Nothing
Set fld = Nothing
Set Tbl = Nothing
Set Db = Nothing
End Function

hello mister Jessy
cela me donne une ereur :OPERATION NON VALIDE
sur fld.Properties.Append Prp

ai essayer également après l'ajout dans la table (Db.TableDefs.Append
l )
ceci:
Set tdf = Db.TableDefs(NomTable) ' entrée des propriétés
Set fld = Tbl.Fields("ts_selection")
Set Prp = fld.CreateProperty("Format", dbText,"yesno")
etc...

euhhhhhhhhh je peut encore bénéficier de tes lumières ou mon crédit est
expiré?
Merci à toi
Pascal



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Eric
.../...
Puis après avoir ajouter


Quelle horreur :-(

Pour les autres, tu corriges ...

Bonjour,

En relisant l'aide, la création dune propriété ne peut être faite que
sur un objet permanent. Donc tu crées ta table normalement sans définir
les propriétés connexes des champs autre que le type (et la longueur
pour un champ Texte).
Puis après avoir ajouter à la collection des tables la nouvelle table,
tu crées les propriétés spécifiques des champs.Ca donnerait :



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Pascal
Bonjour Eric,
c'est kkchose que je ne pouvais connaitre mais j'aurais pu lire....l'aide!
merci de tes eclaircissments
Pascal

"Eric" a écrit dans le message de news:
ui2w9%
.../...
Puis après avoir ajouter


Quelle horreur :-(

Pour les autres, tu corriges ...

Bonjour,

En relisant l'aide, la création dune propriété ne peut être faite que sur
un objet permanent. Donc tu crées ta table normalement sans définir les
propriétés connexes des champs autre que le type (et la longueur pour un
champ Texte).
Puis après avoir ajouter à la collection des tables la nouvelle table, tu
crées les propriétés spécifiques des champs.Ca donnerait :



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr



Avatar
Eric
re,

Tu n'es pas le seul, moi aussi il m'arrive de ne pas fouiller
suffisamment l'aide.
De plus, cela marche-t-il comme tu veux ou toujours dans la panade ?

Bonjour Eric,
c'est kkchose que je ne pouvais connaitre mais j'aurais pu lire....l'aide!
merci de tes eclaircissments
Pascal



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr

Avatar
Pascal
oh excuse moi!
bien sûr cela fonctionne
je t'en remercie encore
A+
Pascal
"Eric" a écrit dans le message de news:

re,

Tu n'es pas le seul, moi aussi il m'arrive de ne pas fouiller suffisamment
l'aide.
De plus, cela marche-t-il comme tu veux ou toujours dans la panade ?

Bonjour Eric,
c'est kkchose que je ne pouvais connaitre mais j'aurais pu
lire....l'aide!
merci de tes eclaircissments
Pascal



--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr