MS access, SÉLECTIONNEZ en vba

Je vais avoir quelques problèmes avec certaines fonctionnalités de mon application. Il est un cas particulier où j'ai un exemple d'une " instance de la classe sur un formulaire pour un administrateur de l'examen. Le formulaire est rempli avec les étudiants associés à cette attente de la classe. Après leurs notes sont finis, j'ai un bouton dans le pied de page qui va supprimer cette classe de mes "en cours" de la table et ajouter les notes de tous les élèves. Les travaux de cette.
Cependant, je tiens essentiellement à copier dans l'attente de cette classe, qui a juste le nom de la classe, de la date et de l'enseignant d'une classe de table avant qu'il soit supprimé de l'attente. Depuis pas de données sur cette classe autre que la clé primaire(nombre de classes) persiste tout au long de cette forme, je ne peux pas remplir les autres champs(nom de la classe, la date) de la ligne dans mon terminé la classe de la table.

Je suis en train d'essayer un "SÉLECTIONNEZ DANS" l'opération en VBA pour obtenir ces valeurs. Il va comme ceci:

   dim cname as String
   dim classdate as Date
   dim pid as integer
   dim teacher as String
   dim qry as String

    pid = [Forms]![frmClasses]![txtID]

   qry = "Select className INTO cname FROM tblPending WHERE tblPending.id = " & " ' " & pid & " ' " & ";"

   db.execute qry
   debug.print qry
   debug.print cname   

À partir d'ici, je fais la même opération pour l'autre variable, à construire ma requête d'INSERTION, et de l'exécuter. Le problème, c'est-- mon sélectionnez dans la sont pas de travail. Debug.imprimer montre que les variables locales n'ont jamais été initialisé à partir de l'instruction SELECT INTO. Toutes les pensées?

C'est une requête création de table, je pense que vous voulez une requête ajout. Je ne pense vraiment pas votre ID de texte. Si pid est null (vide) alors il semble probable que [Formulaires]![frmClasses]![txtID] est vide. Essayez d'utiliser le mot clé Me et voir ce que les noms de contrôle il est livré avec-Moi. provoquera l'intellisense.
Je ne peux pas utiliser le mot clé Me dans ce cas. Au lieu d'ouvrir le formulaire avec un param, je suis en utilisant un champ de la forme précédente. Le champ avec txtID (une zone de texte avec la corporation de la classe ID) est sur la forme précédente. Aussi, cette partie fonctionne comme prévu. La requête imprimé est "Sélectionnez un nom de Classe DANS cName tblPending Où tblPending.id = '17';" j'ai aussi essayé de supprimer les guillemets simples autour de l'id de critères, qu'il est un entier, mais il ne fait pas de différence.
Selon la sélection que j'ai faite à partir de la forme précédente, j'ai le correspondant de l'ID de classe
SÉLECTIONNEZ EN crée une table, ce que vous voulez INSÉRER DANS, qui ajoute à une table. Aussi, ajouter db.execute qry, dbFailOnerror - votre requête échoue si la table existe et vous ne serez pas obtenir un avertissement autrement.
Dans microsoft Access, vous pouvez utiliser DLookup() de "sélectionner dans une variable" office.microsoft.com/en-us/access-help/... Vous pouvez trouver d'autres "fonctions de domaine" utile: DMin(); DMax(); DAvg(); etc.

OriginalL'auteur Scotch | 2012-07-05