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

Mitglied: svenac2010

svenac2010 (Level 1) - Jetzt verbinden

12.05.2013, aktualisiert 19:49 Uhr, 6294 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: ...

Datenbanken
ACCESS 2010 Hilfe für Abfrage
gelöst Frage von Dr.CornwallisDatenbanken1 Kommentar

Liebes Gemeinde, ich habe eine Access Datei die Daten von allen Standorten erfasst, die Benutzer melden täglich 4 Datensätze(wird ...

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. ...

Neue Wissensbeiträge
Windows 10

Neue Sicherheitslücke in Windows 10 (Version 1709) durch Google öffentlich geworden

Information von kgborn vor 16 StundenWindows 10

Vor ein paar Tagen haben Googles Sicherheitsforscher vom Projekt Zero eine Sicherheitslücke im Edge-Browser publiziert. Jetzt wurde eine weitere ...

iOS
IOS 11.2.6 verfügbar
Information von sabines vor 22 StundeniOS

Mit dem Update soll der Bug behoben werden, bei dem eine bestimmte Zeichenkette IOS zum Absturz gebracht hat.

Sicherheit
Sicherheitsrisiko: Die Krux mit 7-Zip
Information von kgborn vor 1 TagSicherheit8 Kommentare

Bei vielen Anwendern ist das Tool 7-Zip zum Entpacken von Archivdateien im Einsatz. Die Software ist kostenlos und steht ...

Internet

Datendealing im WWW Tracking Methoden immer brutaler

Information von sabines vor 1 TagInternet

Interessanter Artikel zum Thema Tracking im WWW und die immer "besseren" Methoden des Trackings. Professor Arvind Narayanan (Princeton-Universität) betreibt ...

Heiß diskutierte Inhalte
Router & Routing
LANCOM VPN CLIENT einrichten
Frage von Finchen961988Router & Routing27 Kommentare

Hallo, ich habe ein Problem und hoffe ihr könnt mir helfen, wir haben einen Kunden der hat einen Speedport ...

Windows Server
AD DS findet Domäne nicht, behebbar?
Frage von schapitzWindows Server25 Kommentare

Guten Tag, ich habe bei einem Kunden ein Problem mit den AD DS. Umgebung ist folgende: Windows Server 2016 ...

LAN, WAN, Wireless
VPN Cisco ASA5505 PaloAlto PA-200
gelöst Frage von YannoschLAN, WAN, Wireless22 Kommentare

Hallo zusammen, ich würde gerne ein Site-to-Site VPN zwischen den beiden Standorten aufbauen. PaloAlto PA200 Internetanschluss Deutsche Telekom GK ...

SAN, NAS, DAS
Qnap TS-453S Pro - Anbindung Active Directory
Frage von JuckieSAN, NAS, DAS13 Kommentare

Hallo zusammen, ich habe hier eine Qnap TS-453S Pro die sich mal so absolut gar nicht in das Active ...