Comment puis-je référence les champs dans les tables à l'aide de VBA dans Access, tels qu'ils peuvent être édités?

Je suis de nouveau à faire de la bd. Jusqu'à présent j'ai un formulaire mis en place comme je l'aime, mais pas de valeurs sont liées b/c j'ai besoin de basculer entre les tables (je pourrais juste ajouter tous les champs de la première table de la seconde table, mais la moitié du point de me faire moi-même était d'apprentissage).

J'ai rencontré deux problèmes.

Tout d'abord, je vais avoir du mal à faire la forme d'accepter que je veux sa source à myTable. Je n'ai aucune idée pourquoi. Il semble assez simple

form.RecordSource="myTable"

Malheureusement, il ne fonctionne pas. Si je le fais, les zones de texte qui sont liées à des champs dans myTable dire d'erreur #ou #nom? au lieu de leur valeur prévue.

Pour essayer de résoudre cela, je suis allé dans les propriétés de la forme et de définir sa source de commande à:

"SELECT * FROM myTable, myTable AS backup_1;"

Je n'ai aucune idée de ce que cela signifie, mais c'est ce que j'avais à faire pour obtenir quelque chose à travailler. C'est mon premier problème - comment puis-je "correctement" associer un db avec une forme sans les manigances et à avoir des références de travail? Je l'ai fait de 3 façons différentes maintenant, on a travaillé pendant un moment puis arrêté, un (form.recordSource=myTable) n'a tout simplement pas de travail, et l'autre est la première méthode que j'ai mentionnés. Tous me causer des problèmes.

En tout cas, j'ai utilisé le SELECT... car il est le plus proche de réellement travailler. À partir de là, j'ai défini les zones de texte que je n'ai pas envie de quitter Indépendant comme [myTable.FieldName], et cela a fonctionné. Par programmation, j'ai pu utiliser [myTable.FieldName] pour éditer obtenir l'information à partir d'un domaine particulier à partir d'un enregistrement particulier sans difficulté. Le problème est que je n'arrive pas à le modifier par programmation les données stockées dans ces domaines.

Par exemple, si j'essaie:

txtDisplayField1=[myTable.Field1]

Fonctionne très bien. Mais si j'essaie:

[myTable.Field1] = txtDisplayField1.text

- Je obtenir de l'erreur d'exécution 2448 - "Vous ne pouvez pas affecter une valeur à cet objet." (Ce qui est le plus utile message d'erreur jamais.)

J'ai mentionné précédemment que lors de l'association de mon formulaire avec une table, il y avait une façon qui ont fonctionné au début, mais ensuite arrêté de travailler pour une raison quelconque. À l'origine, j'ai juste tapé:

form.recordsource = myTable

et il a très bien fonctionné. J'ai été en mesure de champs de référence en se référant à eux comme Champ1, etc., sans les crochets. Il a travaillé comme de moi en train de descendre de travail vendredi (gasp - je ne suis pas un programmeur de métier), mais ne fonctionne pas quand je suis entré en. C'est probablement la plus compliquée explication d'un problème qui est humainement possible... mais toute aide serait grandement appréciée.

InformationsquelleAutor | 2009-09-21