2009-01-06 10 views
0

Je suis à une perte d'expliquer celui-ci:Access.Application.CurrentDb est rien?

Je reçois une erreur:

Error "91" (Object or With block not set)

sur la deuxième ligne ci-dessous:

Dim rs As DAO.Recordset 

Set rs = CurrentDb.OpenRecordset("SELECT * FROM employees") 

Les causes suivantes aussi:

`Set rs = CurrentDb.OpenRecordset("employees")` 

Exécution ?CurrentDb.Name seule dans le immédiat w indow provoque aussi l'erreur.

Maintenant, clairement la base de données est ouverte depuis que je suis en train d'éditer le formulaire, alors qu'est-ce qui peut causer cette erreur ici?

+0

Qu'y a-t-il entre les parens pour OpenRecordset? –

+0

Patrick est sur la bonne voie. Pouvez-vous fournir toute la ligne de code. Je pense que c'est probablement lié à l'échec de OpenRecordset. Vous pouvez également tester dans la fenêtre de commande pour confirmer ce qui se passe réellement ? Access.Application.currentdb est rien – JohnFx

+0

Est-ce que ce code est dans un module, ou sur un formulaire ou autre? Travaillez-vous avec un projet ADP ou une base de données Access simple? –

Répondre

7

Si vous travaillez avec un projet ADP, vous devez utiliser CurrentProject au lieu de CurrentDB. Essayez de créer un objet de base de données et de l'utiliser à la place de la référence CurrentDb.

+0

Non seulement vous devrez utiliser 'CurrentProject' avec un ADP, mais vous devrez utiliser tout le module ADODB pour interagir avec la base de données. Un point de départ: http://support.microsoft.com/kb/281998. –

3

Vous devez affecter votre méthode .openRecordset à un objet dao.recordset ou à un objet générique (technique de liaison tardive). essayez quelque chose comme ceci:

dim rs as dao.recordset 
set rs = currentDb.openRecordset(your SELECT instruction,...) 
1

Par exemple:

Dim db As DAO.Database 
Dim rs As DAO.Recordset 

Set db = CurrentDb 
Set rs = db.OpenRecordset("SELECT * FROM Employees") 
0

La raison pour laquelle je soupçonne le code ne fonctionne pas est que, selon M/soft link text « CurrentDb » est une méthode qui renvoie une « variable d'objet de type Database ». Donc, le code affiché par Forester93 devrait fonctionner. C'est ce que j'utiliserais et j'utilise depuis de nombreuses années maintenant.