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

Access 2010 SQL Abfrage ergebnis Abfragen VBA

Frage Microsoft Microsoft Office

Mitglied: svenac2010

svenac2010 (Level 1) - Jetzt verbinden

12.05.2013, aktualisiert 19:49 Uhr, 6192 Aufrufe, 8 Kommentare

Hallo,
ich komme an einer Stelle nicht weiter.

ich habe eine SQL Abfrage, welche über ein Kriteriumswert() mir eine Anzahl von Werten zurückliefert


01.
SELECT [CROSS Betriebe].Betriebsnummer, Count([CROSS Betriebe].Hauptbetrieb) AS AnzahlvonHauptbetrieb 
02.
FROM [CROSS Betriebe] 
03.
GROUP BY [CROSS Betriebe].Betriebsnummer 
04.
HAVING ((([CROSS Betriebe].Betriebsnummer)=varWert()));
Weiter habe ich ein Formular in welches ich den in der SQL Abfrage vorhanden Wert (varWert() ) eingebe.

Nun möchte ich, sobald ich in dem Formular ein Wert eingebe, dieser geprüft wird, ist der wert mehr als 1 mal vorhanden, dann führe X aus ansonsten Y

der Code funktioniert leider so nicht

01.
Private Sub Text190_AfterUpdate() 
02.
 Dim strSQL As String 
03.
 Dim db As DAO.Database 
04.
 'Dim db1 As Database, Liste As Recordset 
05.
  
06.
 
07.
   varWert = Text190 
08.
    DoCmd.Close acForm, "Betriebsübersicht" 
09.
                
10.
         
11.
        strSQL = "SELECT [CROSS Betriebe].Betriebsnummer, Count([CROSS Betriebe].Hauptbetrieb) AS AnzahlvonHauptbetrieb FROM [CROSS Betriebe] GROUP BY [CROSS Betriebe].Betriebsnummer HAVING ((([CROSS Betriebe].Betriebsnummer)=varWert));" 
12.
        Set db = CurrentDb 
13.
        Set Liste = db.OpenRecordset(strSQL, dbOpenSnapshot) 
14.
    MsgBox Liste.RecordCount 
15.
        If Liste.RecordCount > 1 Then 
16.
        ' Führe X aus 
17.
		MsgBox "mehr als 1" 
18.
        
19.
        Else 
20.
		' Führe Y aus 
21.
        MsgBox "nur 1 wert vorhanden" 
22.
 
23.
        End If 
24.
 
25.
End Sub 
26.
 
Es erscheint der Hinweis:
Laufzeitfehler '3061'
1 Parameter wurde erwartet, aber es wurden zu wenig Parameter übergeben


Vielleicht kann mir hier jemand helfen
Mitglied: SlainteMhath
13.05.2013 um 09:35 Uhr
Moin,

magst Du uns auch noch verraten in welcher Zeile der Fehler passiert?`

lg,
Slainte
Bitte warten ..
Mitglied: vossbaer
13.05.2013 um 11:22 Uhr
Moin,

1 Parameter wurde erwartet, aber es wurden zu wenig Parameter übergeben

der Fehler deutet immer auf ein fehlerbehaftetes SQL Statement hin hast Du die Abfrage so schonmal getestet?

LG
Bitte warten ..
Mitglied: SlainteMhath
13.05.2013, aktualisiert um 11:28 Uhr
01.
"SELECT ... HAVING ((([CROSS Betriebe].Betriebsnummer)=varWert));"
Was genau soll den "varWert" sein? Wenn das eine Variable sein soll die aus dem Code an das SQL Statement übergeben werden soll, dann muss das so aussehen:

01.
"SELECT ... HAVING ((([CROSS Betriebe].Betriebsnummer)=" & varWert & "));"
Bitte warten ..
Mitglied: svenac2010
13.05.2013, aktualisiert um 20:12 Uhr
Hallo,
danke für die Rückmeldungen

der VarWert ist ein Textfeld innerhalb eines Formulars.

Der Code soll eigentlich per SQL Abfrage prüfen ob ein Wert innerhalb einer Tabelle wie oft vorhanden ist und sollte dieses der Fall sein entweder oder als Aktion durchführen.

der jetzige code

01.
varWert = Text190 
02.
        strSQL = "SELECT Betriebsnummer FROM [CROSS Betriebe] WHERE Betriebsnummer=" & varWert & ";" 
03.
        Set db = CurrentDb 
04.
        Set Liste = db.OpenRecordset(strSQL, dbOpenSnapshot) 
05.
        MsgBox Liste.RecordCount 
06.
        If Liste.RecordCount > 1 Then 
07.
 '      MsgBox "mehr als 1" 
08.
       'Me!cmdWeiter.Enabled = False 
09.
        Else 
10.
        MsgBox "nur 1 wert vorhanden" 
11.
        'Me!cmdWeiter.Enabled = True 
12.
      Exit Sub 
13.
        End If 
14.
 
15.
end Sub 
16.
 
17.
Funktioniert hier leider nicht. 
18.
Es wird immer nur der wert 1 Ausgegeben, obwohl mehrfach vorhanden. 
19.
Bei einer manuellen Abfrage wird der Richtige Wert zurück gegeben. 
20.
 
21.
Vielleicht kann hier nochmal jemand drüber schauen 
22.
 
23.
Selbst im Bereich 
24.
<code> 
25.
MsgBox Liste.RecordCount
wird nur der Wert 1 anstatt z.b. 4 zurück geliefert
Bitte warten ..
Mitglied: Biber
13.05.2013, aktualisiert um 19:08 Uhr
Moin svenac2010,

die Query macht schon das Richtige (vermutlich), aber was du abfragst, ist doch mitnichten der "AnzahlVonHauptbetrieb"-Wert, der dich vielleicht interessiert.
Du fragst doch immer nur die Anzahl der zurückgegebenen Zeilen (=.RecordCount) ab.
Und die ist immer =1, egal ob nun für den Betrieb varwert=4 nun zurückkommt, dass er 0 oder 1 oder 27 Hauptbetriebe hat.

Works as designed - ich würde mir da gar keine Sorgen machen.

Grüße
Biber
Bitte warten ..
Mitglied: svenac2010
13.05.2013, aktualisiert um 20:12 Uhr
Hallo Biber,

wie frage ich den die Summe in meinem Fall ab, wenn .RecordCount falsch ist.
In der jetzigen SQL Abfrage, wird nur nach Betriebsnummer gesucht, nicht ,mehr nach Hauptbetrieb

Lt. Microsoft wird die Funktion RecordCount wie folgt angegeben

"...
Die RecordCount -Eigenschaft ist eine DAO-Eigenschaft, die die Anzahl der Datensätze in einer Tabelle in Ihrer Access-Datenbank angibt.
..."
Bitte warten ..
Mitglied: svenac2010
13.05.2013, aktualisiert um 20:37 Uhr
Danke, Problem selber behoben.

Er muss auch wissen, wann der letzte Datensatz vorhanden ist


01.
.... 
02.
Set db = CurrentDb 
03.
        Set Liste = db.OpenRecordset(strSQL, dbOpenSnapshot) 
04.
        Liste.MoveLast 
05.
        If Liste.RecordCount > 1 Then 
06.
....
Bitte warten ..
Mitglied: Biber
13.05.2013, aktualisiert um 20:44 Uhr
Moin svenac2010,

upps, sorry, ich hatte immer noch Bezug genommen auf die (korrigierte) Version der "SELECT Count(*)"-Abfrage aller Hauptbetriebsstätten eines Betriebes.

Okay, dann muss die Ursache noch banaler sein - ist denn die vielleicht die "Betriebsnummer" ein numerischer Wert und "varwert" ein Text?

Wäre im moment das Einzige, was mir noch einfiele.

Grüße
Biber

[Edit]
Viiiel langsamer getippselt als svenac2010 --- und ist jetzt gegenstandslos.
{/Edit]
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Ergebnis aus SQL-Abfrage auswerten
Frage von ghostXBatch & Shell5 Kommentare

Hallo Zusammen! stehe vor folgendem Problem: Habe einen SQL-Select Statement. Per Batch wird ein Connect an die DB gemacht ...

Datenbanken
Access 2010 komplizierte Abfrage
gelöst Frage von Dr.CornwallisDatenbanken3 Kommentare

Hallo zusammen, ich bräuchte eine Query die folgendes macht(sofern das überhaupt möglich ist): Der benötigte Table hat folgende Felder: ...

Windows Tools
Aufgabenplanungs-Ergebnis abfragen
Frage von Havokx23Windows Tools6 Kommentare

Hallo zusammen, ich hab mal ein wenig recherchiert und nichts hilfreiches finden können daher richte ich mich an euch. ...

Microsoft Office
Aus SQL Abfrage Ergebnis in Variable per loop schreiben
gelöst Frage von karlchristianMicrosoft Office4 Kommentare

Hallo, ich habe eine Temp_Abfrage, welche ich per Schleife nach und nach in eine Variable schreiben möchte begonnen habe ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 8 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 8 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 16 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server15 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...