2010-03-09 10 views
0

J'ai donc un formulaire non lié que j'utilise pour enregistrer des données dans une table en cliquant sur un bouton.MS Access 2003 - Unbound Form utilise l'instruction INSERT pour enregistrer dans la table; Qu'en est-il des sous-formulaires?

Y at-il un moyen que je peux avoir des sous-formulaires pour l'entrée qui me permettra d'enregistrer des données à la table dans ce même clic de bouton? Fondamentalement, je veux ajouter plus d'options d'entrée pour l'utilisateur, et même si je connais d'autres façons de le faire, je suis particulièrement curieux de le faire de cette façon (si cela peut être fait).

Alors disons que la 'forme parente' est frmMain. Et il y a deux formes enfants "sub1" et "sub2". Juste à titre d'exemple, disons sur frmMain il y a deux zones de texte: txtTitle & txtAuthor. sub1 et sub2 ont tous deux une zone de texte sur eux qui représentent quelque chose comme des prix. L'idée est le titre & auteur d'un livre, puis un prix à chaque magasin (simplifié).

donc j'ai essayé ce (parce que je pensais que ça valait la peine un coup de feu):

Dim db as DAO.database 
Dim sql as String 


sql = "INSERT INTO (Title, Author, PriceA, PriceB) VALUES (" 

if not isnull(me.txtTitle) then 
    sql = sql & """" & me.txtTitle & """," 
Else 
    sql = sql & " NULL," 
End If 

if not IsNull(me.txtAuthor) then 
    sql = sql & " """ & me.txtAuthor & """," 
else 
    sql = sql & " NULL," 
end if 

if not IsNull (forms!sub1.txtPrice) then 
    sql = sql & " """ & forms!sub1.txtPrice & """," 
else 
    sql = sql & " NULL," 
end if 

sans terminer le code, je pense que vous pouvez voir le GOTCHA je suis dirigé vers. J'ai essayé ceci et ai obtenu un "accès ne peut pas trouver le formulaire" "". Je pense que je peux à peu près voir pourquoi sur cette approche aussi, parce que quand je clique sur le bouton qui appelle le nouveau sous-formulaire dans le formulaire parent, les valeurs qui viennent d'être saisies ne sont pas conservées/sauvegardées. Je devrais mentionner que l'idée ci-dessus n'est pas destinée à être l'une ou l'autre approche, mais plutôt les deux sous-formulaires utilisés à chaque fois.

donc c'est un exemple. Je veux utiliser cette méthode (si possible) pour avoir environ 7 choix de sous-formulaire différents dans un formulaire, et être en mesure d'enregistrer dans une table via une instruction SQL.

Je me rends compte qu'il peut y avoir de meilleurs moyens, mais je me demande simplement si je peux y arriver avec cette approche par curiosité.

Merci comme toujours!

+0

Juste pour être clair ici, ce ne sont pas le type habituel de sous-formulaire avec plusieurs enregistrements, ce sont des contrôles de sous-formulaire avec un formulaire avec d'autres contrôles non liés, est-ce exact? Si oui, pourquoi avoir des sous-formulaires, pourquoi pas un tabcontrol? – Fionnuala

+0

droite et la méthode de contrôle onglet est quelque chose que je peux faire. Je me demandais par simple curiosité si je pouvais faire fonctionner l'idée ci-dessus ... encore une fois ... pas que ce soit même la meilleure idée. Merci! – Justin

Répondre

3

Votre problème est la façon dont vous faites référence aux commandes, au lieu de

formes! Sub1.txtPrice

essayer

moi! Sub1.form.txtPrice

Vous pouvez voir plus d'exemple de la façon de se référer aux sous-formulaires ici

http://www.mvps.org/access/forms/frm0031.htm

+0

+1 C'est un bon point. – Fionnuala

+0

merci beaucoup – Justin