Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Fehlermeldung bei RecordSet

Frage Microsoft Microsoft Office

Mitglied: Shadow88

Shadow88 (Level 1) - Jetzt verbinden

20.10.2008, aktualisiert 17:48 Uhr, 3288 Aufrufe, 4 Kommentare

Hallo zusammen =),

hoffe es kann mir jemand hierbei helfen.

Und zwar habe ich eine Datenbank, in der ich jetzt einen RecordSet mit ein paar zusätzlichen IF Abfragen programmiert habe, bei dessen Ausführung allerdings der Fehler "LOOP WITHOUT DO" angezeigt wird. Wenn ich dann alles bis auf den RecordSet per ' ausblende funktioniert der RS einwandfrei.

Ich weiß es sieht sehr viel und kompliziert aus aber das ist es eigentlich gar nicht. Kurz zur Erklärung:

1. Es wird geschaut ist ein bestimmtes File offen oder nicht? -Falls JA, dann wird abgebrochen, ansonsten weiter gemacht.
2. Der Benutzter wird gefragt ob alles gedruckt werden soll, oder einzeln. Falls Alles (Jes), dann wird der RecordSet gestarten, falls einzeln der Report geöffnet
3. Hat der User mit JA geantwortet wird wie gesagt der RS mit einem qry gestartet und dann soll der Inhalt des RS in eine tbl geschrieben werden. Wenn der schreibvorgang erfolgt ist, soll der Benutzter gefragt werden ob weiter gemacht wird, oder ein Abbruch erfolgen soll.

Das wars auch schon. Falls es noch Fragen gibt, bitte kurz melden.

Vielen Dank für eure Hilfe!

Liebe Grüße,

Robert



Hier der Code:



01.
Private Sub cmdReport_Click() 
02.
Dim AbfrageAuto As Integer 
03.
 
04.
'Hier frage ich ab ob ein bestimmtes File nicht geöffnet ist - FUNKTIONIERT! 
05.
Const sPath As String = "M:\Central\EU-Operations\Administration\Finance_Controlling_Invoicing\SA Attachments\" 
06.
Const sFile As String = "Sammlung_SA.xls" 
07.
     
08.
If DateiIstFrei(sPath & sFile) Then 
09.
'Wenn das File frei ist DANN 
10.
 
11.
'Wird die Frage gestellt ob Ja oder Nein 
12.
AbfrageAuto = MsgBox("Print all?", vbYesNo) 
13.
 
14.
'JA 
15.
If AbfrageAuto = 6 Then 
16.
 
17.
 
18.
'Hier muss noch etwas hin aber da bin ich noch am basten 
19.
 
20.
 
21.
Dim rs As ADODB.Recordset 
22.
Dim AbfrageRecord As Integer 
23.
Set rs = New ADODB.Recordset 
24.
 
25.
rs.Open "qrySAvoll_nnFaktSum_Auto", CurrentProject.Connection, adOpenKeyset, adLockOptimistic 
26.
rs.MoveFirst 
27.
Do Until rs.EOF 
28.
 
29.
'Jetzt soll vom Recordset ein Wert in eine andere Tabelle geschrieben werden, dies mache ich durch ein Formular im Hintergrund 
30.
DoCmd.OpenForm "frmTempAuto", acNormal, , , acFormAdd, acIcon 
31.
 
32.
    Forms!frmTempAuto!Study = rs!Kundenauftrag 
33.
 
34.
DoCmd.Close acForm, "frmTempAuto" 
35.
'Damit ist das Schreiben der Daten beendet 
36.
 
37.
'Jetzt soll eine Frage gestellt werden ob der nächste Record im Recordset geschrieben werden soll oder nicht, wenn ja dann soll es zum LOOP kommen 
38.
AbrageRecord = MsgBox("Next study?", vbOKCancel) 
39.
If AbfrageRecord = 1 Then 
40.
 
41.
rs.MoveNext 
42.
Loop 
43.
 
44.
'Ansonsten wird geschlossen 
45.
Else 
46.
 
47.
rs.Close 
48.
End Sub 
49.
End If 
50.
 
51.
rs.Close 
52.
End Sub 
53.
'Wenn alle durch sind DONE 
54.
 
55.
'Sollte jemand oben bei der Frage "Print all" nein sagen 
56.
Else 
57.
DoCmd.OpenReport "rptSAvoll_nnFakt_neu", acViewPreview 
58.
 
59.
'SOllte das File nicht frei sein 
60.
Else 
61.
MsgBox "The file 'Sammlung_SA.xls' is already opened. Please close it first!" 
62.
 
63.
End If 
64.
 
65.
End Sub
Mitglied: Bolle97
20.10.2008 um 15:23 Uhr
Hallo,

1. auf die Schnelle betrachtet fehlt wenigstens ein End If (Zeile 56 ist ein ELSE, Zeile 60 ist ein ELSE, aber Zeile 63 ist nur ein End IF).
2. nicht zwischendurch ein "End Sub" sondern ein "Exit Sub" benutzen (End Sub nur als letzte Anweisung).
3. den Loop (also das Ende von Do Until) nicht in einem If .. Then .. End If platzieren sondern wenn die Schleife nicht weiter durchlaufen werden soll ein "Exit Do" benutzen.

Gruß - René
Bitte warten ..
Mitglied: Shadow88
20.10.2008 um 15:52 Uhr
Zitat von Bolle97:
Hallo,

1. auf die Schnelle betrachtet fehlt wenigstens ein End If (Zeile 56
ist ein ELSE, Zeile 60 ist ein ELSE, aber Zeile 63 ist nur ein End
IF). Da hast Du recht. Habe ich übersehen, Danke =).

2. nicht zwischendurch ein "End Sub" sondern ein "Exit
Sub" benutzen (End Sub nur als letzte Anweisung).
Habe jetzt alle "End Sub" bis auf das letzte in "Exit Sub" geändert.

3. den Loop (also das Ende von Do Until) nicht in einem If .. Then ..
End If platzieren sondern wenn die Schleife nicht weiter durchlaufen
werden soll ein "Exit Do" benutzen.
Wie stelle ich das an? Diese Methode kenne ich gar nicht. Ich möchte ja den Benutzer fragen ob es beendet werden soll oder ob der Loop erneut ausgeführt wird. Ist das damit auch möglich?
Gruß - René

Vielen Dank und liebe Grüße, Robert
Bitte warten ..
Mitglied: Bolle97
20.10.2008 um 17:08 Uhr
Hallo,

also der klassische Ablauf einer/deiner Schleife wäre folgendermaßen:

Auszug:

rs.Open "qrySAvoll_nnFaktSum_Auto", CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs.MoveFirst
Do Until rs.EOF
'Jetzt soll vom Recordset ...
DoCmd.OpenForm "frmTempAuto", acNormal, , , acFormAdd, acIcon
Forms!frmTempAuto!Study = rs!Kundenauftrag
DoCmd.Close acForm, "frmTempAuto"
'Damit ist das Schreiben der Daten beendet
'Jetzt soll eine Frage gestellt ...
AbrageRecord = MsgBox("Next study?", vbOKCancel)
If AbfrageRecord = 1 Then
rs.MoveNext
Else
Exit Do
End If
Loop
rs.Close


Gruß - René
Bitte warten ..
Mitglied: Shadow88
20.10.2008 um 17:48 Uhr
Zitat von Bolle97:
Hallo,

also der klassische Ablauf einer/deiner Schleife wäre
folgendermaßen:

Auszug:

rs.Open "qrySAvoll_nnFaktSum_Auto",
CurrentProject.Connection, adOpenKeyset, adLockOptimistic
rs.MoveFirst
Do Until rs.EOF
'Jetzt soll vom Recordset ...
DoCmd.OpenForm "frmTempAuto", acNormal, , , acFormAdd,
acIcon
Forms!frmTempAuto!Study = rs!Kundenauftrag
DoCmd.Close acForm, "frmTempAuto"
'Damit ist das Schreiben der Daten beendet
'Jetzt soll eine Frage gestellt ...
AbrageRecord = MsgBox("Next study?", vbOKCancel)
If AbfrageRecord = 1 Then
rs.MoveNext
Else
Exit Do
End If
Loop
rs.Close


Gruß - René
Hey René,

vielen Dank für Deine Hilfe! Klappt einwandfrei =) ... Und wieder was dazugelernt ;)

Super Danke!

Liebe Grüße,

Robert
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Access 2010 vba Recordset
gelöst Frage von EUuserVB for Applications3 Kommentare

Hallo zusammen, ich arbeite seit langem mal wieder mit Access und vba: Ich habe eine Datenbank, zwei Tabellen (identisch ...

Datenbanken
Access 2010 VBA - mehrspaltiges Listenfeld über Recordset füllen
gelöst Frage von AndyAhDatenbanken2 Kommentare

Hi NG, ich bin's schon wieder ;). Wie kann ich ein Listenfeld mit Recordsets mehrspaltig füllen? Folgenden Code habe ...

VB for Applications
VBA Excel Recordset - Abfrage auf SQL-Server
gelöst Frage von AximandVB for Applications4 Kommentare

Hallo, ich habe ein neuerliches Problem. Mitarbeiter sollen in einem Excel-Sheet die Artikelnummern ihrer benötigten Produkte runterschreiben. Ich ermittle ...

Datenbanken
Access 2010 - Listenfeld an ADO-Recordset knüpfen
gelöst Frage von AndyAhDatenbanken9 Kommentare

Hi NG, wie kann ich ein Listenfeld an ein ADO-Recordset knüpfen. Die zugrundeliegende Datenquelle ist keine mit Access verknüpfte ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 47 MinutenViren und Trojaner

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 4 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell8 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...