2012-09-04 5 views
1

J'ai un formulaire avec un bouton dessus. Le bouton copie essentiellement les enregistrements d'une table à l'autre. Lorsque des enregistrements sont lus et copiés, des valeurs spécifiques sont également vérifiées. Par exemple. Si l'un des champs de la table a une valeur de "" alors il devrait appeler un autre formulaire qui me permet d'entrer une date. Une fois la date saisie et le formulaire fermé, le programme poursuit la copie. Il peut également arriver que les champs clés de la table en cours de copie soient en double. Dans ce cas, je devrais lancer un 'formulaire listbox' avec une listbox affichant les valeurs des enregistrements dupliqués. Je devrais alors sélectionner l'enregistrement correct dont j'ai besoin copié.Ms Access AddItem avec VBA

Dim NumberCount As Long 
    NumberCount = RecordsetElementValue.RecordCount 
    If NumberCount > 1 Then 
     With Form_F_ListBox.List30 
      RecordsetElementValue.MoveFirst 
      Do 
       With Forms!F_ListBox.List30.AddItem(RecordsetElementValue!E_ElementValue) 
       End With 
       RecordsetElementValue.MoveNext 
      Loop Until RecordsetElementValue.EOF = True 
      DoCmd.OpenForm "F_ListBox", acNormal 
     End With 
    End If 

L'exemple de code ci-dessus est ce que j'ai pour au cas où il y a des doublons (de NumberCount> 1) La zone de liste dans ma forme de F_ListBox doit être rempli avec les valeurs de mon recordset.

Je rencontre maintenant une erreur d'exécution 6014. La propriété RowSourceType doit être définie sur 'Value List' pour utiliser cette méthode.

Qu'est-ce que je fais mal?

Répondre

3

La méthode habituelle pour définir la source de ligne d'une liste déroulante ou d'une zone de liste dans MS Access consiste à utiliser une instruction SQL, mais vous pouvez également utiliser une liste. Ceci est contrôlé par le type de source de ligne.

Me.MylistBox.RowSourceType = "Value List" 

de vos notes, il semble qu'une instruction SQL pour la source de la ligne serait plus facile:

Me.MylistBox.RowSource = "SELECT ID FROM MyTable"