Fanny please

yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005 - 15 juin 2004 à 09:49
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 - 18 juin 2004 à 11:21
je viens de montrer ma Bdd à mon maître de stage qui m'a demandé de faire des rajouts,

en fait, il veut que toutes les données qui sont stockées dans un rapport pour être imprimées soient aussi stockées dans des tables, de facon à pouvoir modifier un rapport après coup, c possible à partir du rapport en mode création evdt mais plus chiant, il veut que cela puisse se faire à partir des formulaires qui servent à les créer.....

autrement dit, il faut plus que je réinitialise à chaque coup les contenu de mes listbox,il faut que lorsqu'un rapport a déjà été crée pour un type, les différentes options de ce type apparaissent sélectionnées, de facon à n'avoir pas tout à resélectionner pour modifier un petit truc du rapport....

cela impose de créer une table dynamiquement et de pouvoir l'enregistrer sans que l'utilisateur s'en appercoive....

j'en viens à ma question: comment fait-on pour créer une table?, je connais la fonction principale mais pas ce qu'il y'a autour....ce qu'il faut initialiser....l'aide est pas très claire....

peux-tu m'aider s'il te plait? :)
yaf_yaf

14 réponses

HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
15 juin 2004 à 10:04
Bonjour,

il faut que tu utilises la méthode : CreateTableDef qui est la création d'une définition de table, à partir de laquelle tu peux ajouter des champs.

Va voir sur cette source :
ici

normalement, elle te donnera des pistes.

(là je suis un peu pressée, j'ai un entretien cet après-midi :big) , donc ne m'en veux pas de cette réponse rapide, si tu n'y arrives pas à partir de cette source, dis le, mais je te répondrais plus tard seulement ...)

Fanny
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
15 juin 2004 à 12:59
ok, maintenant ca marche,.....ce qu'il reste à faire c, lorsqu'un type a déjà été créé, de selectionner de manière automatique dans les listbox, les options choisies contenues dans la table....lire la table pose pas de pb, mais sélectionner automatiquement, je ne vois pas....g essayé en faisant listbox.selected(i)=true
mé ca ne force pas la selection....

soit je m'y prend mal, soit ca ne marche pas comme ca...

qd tu auras le tps et si je n'ai pas trouvé d'ici là, pourais-tu m'aider?
8-)
yaf_yaf
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
16 juin 2004 à 12:46
c bon g trouvé mon erreur et maintenant ca marche....presque impec car c trop lent...faut que je modifie mon remplissage des tables.... :sad) grrr
yaf_yaf
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
16 juin 2004 à 13:21
Cool alors :)
Courage ;)

Désolée de ne pas avoir pu te répondre ... j'ai été occupée hier et ce matin :sad) ...

Fanny
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
16 juin 2004 à 14:56
oulah, je viens de m'apercevoir d'une erreure....

ct fait, on pour supprimer un champ d'une table de facon dynamique? je parle d'une colonne entière ...

parce que la je définie en fonction des besoins un nombre de colonnes correspondant à un nombre d'options, concl si une option est supprimée par l'utilisateur, il faut aussi supprimer dans la table la colonne correspondante.....

p'tin c difficile de jongler avec des tables comme ca!... :blush)
yaf_yaf
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
16 juin 2004 à 15:47
Erf oui ... c'est clair ...

Si tu as regardé la source que je t'ai montré, et que tu as gardé les mêmes noms de variables ça doit donner quelque chose comme ça :

Dim TD1 As TableDef
TD1.Fields.Delete ("nomcolonne")

Mais je ne sais plus comment on fait exactement :sad)

Fanny
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
17 juin 2004 à 09:25
ok merci,

en tout cas maintenant y'a plus de problème pour le remplissage des tables, ca se fait rapidement...... 8-)
yaf_yaf
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
17 juin 2004 à 09:36
Bientôt c'est à toi que je demanderais de l'aide en VBA pour Access lol :big) ...

Fanny
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
17 juin 2004 à 14:05
lol ben c pas pour tout de suite, je viens de repérer un bug que je ne parviens pas a résoudre:
la fonction suivante affiche dans une listebox des sous-options venant d'un champ d'une table et vérifie
si ces sous options n'ont pas déjà été stockée ds une autre table dans un champ dont le nom est celui de l'option et si c le cas les sélectionne

mon problème est que la fonction marche dans tous les cas sauf lorsque le nom de l'option comporte un trait d'union, auquel cas g un message d'erreure m'indiquant que deux paramètres sont attendus au niveau de myquery2....????

y comprends tu quelque chose? :question)

Public Sub form_init()

Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim MyQuery As String
Dim rs2 As DAO.Recordset
Dim myquery2 As String
Dim i As Integer

ActiveXStr1.Clear
ActiveXStr1.MultiSelect = 1
ActiveXStr1.ListStyle = 1

Set db = CurrentDb

MyQuery = "SELECT Bezeichnung FROM Ausprägungen WHERE Merkmale='" & Form_Typenausprägungen.Merkmale.Value & "' "
Set rs = db.OpenRecordset(MyQuery, dbOpenDynaset)

rs.MoveFirst
i = 0
While Not rs.EOF

ActiveXStr1.AddItem rs!Bezeichnung

myquery2 = "SELECT " & Form_Typenausprägungen.Merkmale.Value & " FROM " & Form_Typenausprägungen.Typ.Value & ""

Set rs2 = db.OpenRecordset(myquery2, dbOpenDynaset)
rs2.MoveFirst

While Not rs2.EOF
If rs.Fields("Bezeichnung") = rs2.Fields(Form_Typenausprägungen.Merkmale.Value) Then


ActiveXStr1.Selected(i) = True

End If
rs2.MoveNext
Wend
rs.MoveNext
i = i + 1
Wend

Set rs2 = Nothing
Set rs = Nothing

End Sub

yaf_yaf
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
17 juin 2004 à 14:53
C'est parce qu'Access ne supporte pas les caractères spéciaux.

Essaies de mettre des crochets au niveau de tes noms de champs et de table :

myquery2 = "SELECT [ " & Form_Typenausprägungen.Merkmale.Value & "] FROM [" & Form_Typenausprägungen.Typ.Value & "]"

Set rs2 = db.OpenRecordset(myquery2, dbOpenDynaset)
rs2.MoveFirst

Fanny
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
17 juin 2004 à 15:28
génial!!!
c exactement ca!
merci
8-) :big)
il me reste plus qu'à trouver comment créer une table en autorisant les champs vides ......
yaf_yaf
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
17 juin 2004 à 16:09
Il me semble que c'est au moment où tu fais ton CreateFields ... Il y a des paramètres à passer mais je ne me souviens plus.

Fanny
0
yafisab Messages postés 106 Date d'inscription jeudi 13 mai 2004 Statut Membre Dernière intervention 6 janvier 2005
18 juin 2004 à 11:14
g trouvé!!
pour spécifier qu'un champ peut comporter une chaine vide:
fld.allowzerolength=true

arf c vrai que maintenant je commence à être en mesure de t'apprendre quelque chose! lool
8-) :big)
yaf_yaf
0
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
18 juin 2004 à 11:21
Hihi ;)
Tant mieux, c'est plus intéressant de partager de toute façon :-p .

Fanny
0
Rejoignez-nous