Wie zu Behebe MS Access Laufzeit Fehler 3061 OpenRecordSet

Wird in Ihrem Access häufig der Laufzeitfehler 3061 OpenRecordSet angezeigt ? Ärgern Sie sich nicht, denn Sie können dies in wenigen einfachen Schritten beheben. Erfahren Sie, welche Fixes Sie ausprobieren müssen.

Praktisches Szenario:

Es fühlt sich wirklich genervt aus dem Grund an, wenn man sich lange mit Code herumschlägt. Du denkst, dass du etwas sehr leicht verpasst, und du versuchst es   um alles zu eliminieren, was eine mögliche Ursache für einen solchen Fehler sein könnte. Aber immer noch können Sie die Situation vonMS Access Error 3061 openrecordset nicht entgehen . Zur Erläuterung habe ich den Fehler in seiner einfachsten Form, wie unten in einem Bericht erwähnt, erleichtert:

Dim db As DAO.Datenbank
Dim rs As DAO.RecordSet

Setzen Sie db = CurrentDb
Setzen Sie rs = db.OpenRecordset ( “SELECT * FROM qryTableOfGrades “)

‘where qryTableOfGrades ist eine gespeicherte Kreuztabellenabfrage.

Ich bekomme “Laufzeitfehler 3061 Zu wenige Parameter. Erwartete 0 “

Aber wenn ich nur diese letzte Zeile mache:

Setzen Sie rs = db.OpenRecordset (  qryTableOfGrades “)

Ich bekomme “Laufzeitfehler 3061 Zu wenige Parameter, erwartet 1”.

Und wenn ich das ausführe :
Setzen Sie rs = db.OpenRecordset ( qryTableOfGrades ) ‘ohne Anführungszeichen

Ich erhalte “Variable nicht definiert.”

Ob   Abfrage wird von selbst betrieben ohne Bericht läuft es reibungslos.

Szenariofall 2:

Ich erhalte Laufzeitfehler 3061   in meiner Access-Datenbank zwei Parameter. Ich habe untersucht, dass ich die SQL in VBA mithilfe der Formularparameter aufbauen müsste, aber es wäre ziemlich komplizierte SQL spezifiziert, dass es eine kleine Anzahl von Unsicherheit innerhalb des Arrays gibt. Jeder Rat als Workaround wäre willkommen. Obwohl ich daran gedacht habe, VBA zum Erstellen einer Tabelle aus einer Abfrage zu verwenden und nur auf diese Tabelle zu verweisen – aber ich mag es nicht, extra zu arbeiten.

Gründe für den Zugriff Openrecordset Runtime Error 3061

Der Grund, dass Sie MS Access-Laufzeitfehler 3061 erhalten   Wenn Sie nur mühsam das Recordset entsperren, ist das Formular, auf das Sie zugreifen möchten, nicht geöffnet und wenn Sie darauf zugreifen möchten   [Formen]! [ frmReportingMain ]   Es zeigt null an, dann versucht man, eine Eigenschaft für diese Nullreferenz zu erhalten, und die Dinge werden durcheinander gebracht. Das   OpenRecordset   function hat keine Methode , ein Dialogfeld aufzurufen, um nach Eingaben des Benutzers zu fragen , wie es die Benutzeroberfläche tut, wenn sie einen solchen Fehler erhält.

Sie können auch mögen:

Wie löse ich Fehler 48: Fehler beim Laden der DLL?

MS Access korrupt Datenbank Wiederherstellung Werkzeug für Entfernen schwerer Fehler Blot

Sie können Ihre Abfrage ändern, um Parameter zu verwenden, die nicht an ein Formular gebunden sind

yourTableAllocStart > = pAllocStart

und yourTableAllocEnd <= pAllocEnd

Dann können Sie eine solche Funktion verwenden, um Recordset dieser Abfrage zu erwerben .

Funktion GetQryAllocDebits ( pAllocStart als String, pAllocEnd als String) als DAO.Recordset

    Dim db As DAO.Datenbank

    Dim qdef Als DAO.QueryDef

    Setzen Sie db = CurrentDb

    Setze qdef = db.QueryDefs (  qryAlloc_Debits “)

    qdef.Parameters.Refresh

    qdef.Parameters (  pAllocStart “) .Value = pAllocStart

    qdef.Parameters (  pAllocEnd “) .Wert = pAllocEnd

    Legen Sie GetQryAllocDebits = qdef.OpenRecordset fest

Ende Funktion

Der Nachteil dieses Verfahrens ist, dass wenn Sie dies auf einem Formular beschreiben, das an es gebunden ist, es nicht energisch “Lücken füllt” für dich.

Lesen Sie auch:

Wie zu beheben MS Access Laufzeit 3146 ODBC-Aufruf fehlgeschlagen Fehler?

Wie beheben ‘80004005’ Fehlermeldung in MS Access-Datenbank?

In dieser Situation können Sie Formulare anhängen   qryAlloc_debts   und entkomme jede Klausel   innerhalb der gespeicherten Abfrage, dann nutzen Sie die Formulare   Filter   um deine where-Klausel zu konstruieren. In dieser Illustration können Sie where-Klausel genau verwenden, wie Sie es gedruckt haben.

Danach, wenn Sie ein Recordset entsperren möchten, dann tun Sie es wie folgt:

Funktion GetQryAllocDebits ( pAllocStart als String, pAllocEnd als String) als DAO.Recordset

    Dim qdef Als DAO.QueryDef

    Legen Sie Qdef = New DAO.QueryDef fest

    qdef.SQL = “Wählen Sie * aus qryAlloc_Debits, wobei AllocStart > = pAllocStart und pAllocEnd <= pAllocEnd 

    qdef.Parameters.Refresh

    qdef.Parameters (  pAllocStart “) .Value = pAllocStart

    qdef.Parameters (  pAllocEnd “) .Wert = pAllocEnd

    Legen Sie GetQryAllocDebits = qdef.OpenRecordset fest

Ende Funktion

Wenn Sie eine gespeicherte Abfrage öffnen, die Parameter im Code enthält, müssen Sie ein DAO.Querydef- Objekt verwenden und den / die Parameter über die Kompilierung von Querydef- Stoffparametern bereitstellen .

Sie packen dann aus Cord – über das OpenRecordset Technik des Querydef Objekts als Ersatz von OpenRecordset Schema des Datenbankobjekts.

Ich weiß nicht, ob das, was ich deinem Code hinzugefügt habe, so läuft wie es ist, aber es zeigt, was getan werden muss, um das querydef- Objekteinzurichten .

     Lösung zu beheben    MS Access Laufzeitfehler 3061  

Wenn Sie MS Access-Laufzeitfehler “Laufzeitfehler 3061”, zu wenige Parameter erwartet. Erwartet 1. “ Wenn Sie MS Access-Programm verwenden, müssen Sie die richtige Ursache für diesen Fehler kennen, bevor Sie es lösen, möglicherweise folgend einer der folgenden wie folgt.

1.) Sie können vielleicht vergessen, das einfache Anführungszeichen (‘) um Variable innerhalb der Ursache in die Abfrage zu platzieren.

Zum Beispiel :
Wenn ich meine Tabellenstruktur habe

CREATE TABLE Personen

(

PersonID int ,

Familienname, Nachname varchar ( 255),

Vorname varchar ( 255),

Adresse varchar ( 255),

Stadt varchar ( 255)

);

Die Abfrage, die einen solchen Fehler akzeptiert, ist etwas wie

Legen Sie rs = dbs.OpenRecordset fest ( “Wählen Sie * Von Personen mit Vorname =” & p_Vorname & “;”, dbOpenSnapshot )

Um dieses Problem zu lösen, tragen Sie den Helden, der ein einzelner Code (‘) ist, um so zu assistieren:

Legen Sie rs = dbs.OpenRecordset fest ( “Wählen Sie * Von Personen mit Vorname =  ” & p_Vorname & “  ;”, dbOpenSnapshot )

2.) Das Feld der Tabelle fehlt oder falsch geschrieben. Sie müssen Ihre Abfrage überprüfen und sicherstellen, dass alle Felder in der Abfrage korrekt geschrieben sind oder in der Tabelle vorhanden sind.

In der obigen Tabellenstruktur lautet die Abfrage, die zu diesem Fehler führen könnte:

Setzen Sie rs = dbs.OpenRecordset (  Vornamen auswählen , Nachname von Personen, wo   PersonID   =   3 ; “, dbOpenSnapshot )

Korrigieren Sie die Felder in der Abfrage wie folgt, um dieses Problem zu beheben:

Legen Sie rs = dbs.OpenRecordset ( “Wählen Sie Vorname , Nachname von Personen, wo   PersonID   =   3 ; “, dbOpenSnapshot )

Aus den oben genannten 2 Beispiele gegeben, ich hoffe , Sie in der Lage sein wird zu MS Access „Laufzeitfehler‚3061‘ zu beheben . Und wenn nicht , dann würde ich einfach empfehlen Ihnen die Verwendung von fähigsten MS Access Reparatur- und Wiederherstellungstool. Diese Reparatur zu machen Tool ist sehr prominent bei der Lösung von MS Access bezogenen Fehlern und Bugs und Wiederherstellung der Datenbank auf ganz neue frische Datei ohne jede Schwierigkeit.

Schritte, um loszuwerden MS Access Laufzeit Fehler 3061:

Schritt 1: Downloaden und installieren Sie die Software. Nach der Installation wählen Sie die korrupte Access-Datei für die Reparaturstep 1

Schritt 2: Die Software wird Ihnen die Liste aller durchsucht Datei in einem Laufwerk. Wählen Sie die Datei zu reparieren, und klicken Sie auf “Reparieren” Taste.

2

Schritt 3: Der Wiederherstellungsprozess wird begonnen zu erhalten und Sie den Protokollbericht zur Analyse finden.

3

Schritt 4: Sobald der Wiederherstellungsprozess ist over, klicken Sie auf “OK”, um die Vorschau der Datei Datenbankobjekte zu sehen.

4

Schritt 5: reparierte Datei kann betrachtet werden.

5

Schritt 6: Die Software wird reparierte Datenbank standardmäßig auf den Ort, an dem beschädigten Datenbank gespeichert wurde zu retten, aber es wird die Datei umzubenennen. Sie können für die gewünschte Stelle zu reparierenden Datenbank zu speichern entscheiden.

6

Schritt 7: Speichern unter Prozess.7

Schritt 8: Speichern abgeschlossen ist.

8

tip Haben Sie immer noch Probleme? Beheben Sie sie mit Stellar Repair for Access:

Diese Software gewährleistet die nahtlose Reparatur und Wiederherstellung der ACCDB- und MDB-Datenbank und stellt alle Objekte einschließlich Tabellen, Berichte, Abfragen, Datensätze, Formulare und Indizes sowie Module, Makros usw. wieder her. Beheben Sie Microsoft Access-Probleme jetzt in 3 einfachen Schritten:

  1. Herunterladen Sie Stellar Repair for Access mit der Bewertung Toll auf Cnet herunter.
  2. Klicken Sie auf die Option Browse und Search, um eine beschädigte Access-Datenbank zu finden.
  3. Klicken Sie auf die Schaltfläche Repair, um die Datenbankobjekte zu reparieren und in der Vorschau anzuzeigen.