Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Per SQL maximalen Spaltenwert im VBA code ermitteln
zurück: Bilder in Access (zum 1000sten mal) weiter: Neulingsfrage-Bitte um Hilfe Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Bitte Status wählen ! Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
Gast



Verfasst am:
31. Okt 2004, 15:51
Rufname:

Per SQL maximalen Spaltenwert im VBA code ermitteln - Per SQL maximalen Spaltenwert im VBA code ermitteln

Nach oben
       

Hallo zusammen,

ich habe folgendes Problem, ich benötige den maximalen Wert einer Tabellenspalte, mit dem ich dann im VBA-Code weiter arbeiten kann.
Folgender Code (Access 2000) erzeugt bei mir nach der Zeile 'DoCmd.RunSQL s' immer folgende Fehlermeldung:

'Eine AusführenSQL-Aktion(RunSQL) erfordert ein Argument, das aus einer SQL-Anweisung besteht.'

Da ich blutige Anfänger bin, wäre es schön wenn mir jemand weiterhelfen könnte, hier der Code:
Code:
Private Sub Datensatz_anlegen_Click()
On Error GoTo Err_Datensatz_anlegen_Click
    Dim s As String
    Dim neue_pers_nr As Integer

    s = "SELECT Max(Nr) FROM Schwb"
    DoCmd.RunSQL s
    DoCmd.GoToRecord , , acNewRec
    Persnr.Value = Nr + 1
   
Exit_Datensatz_anlegen_Click:
    Exit Sub
Err_Datensatz_anlegen_Click:
    MsgBox Err.Description
    Resume Exit_Datensatz_anlegen_Click
End Sub
lothi
c#, .Net


Verfasst am:
31. Okt 2004, 20:20
Rufname:
Wohnort: Birgisch

AW: Per SQL maximalen Spaltenwert im VBA code ermitteln - AW: Per SQL maximalen Spaltenwert im VBA code ermitteln

Nach oben
       

Hallo Gast

Ganz so einfach funtioniert das nicht. Mit RunSQL führt man eine Aktualisierung oder Löschabfrage mit VBA aus.

Auslesen eines Wertes geht über ein Recordset:
Code:
Private Sub Datensatz_anlegen_Click()
On Error GoTo Err_Datensatz_anlegen_Click
    Dim rs As DAO.Recordset '<Bei Fehler Vereis auf DAO 3.x kontrollieren
    Dim s As String
    Dim MaxWert As Long
    Dim neue_pers_nr As Integer

    s = "SELECT Max(Nr) FROM Schwb"
    Set rs = CurrentDb.OpenRecordset(s) 'Abfrage öffnen
    MaxWert = rs.Fields(0) 'Wert aus dem ersten Feld an Variable übergeben
    MsgBox "Maximaler Wert: " & MaxWert
    DoCmd.RunSQL s
    DoCmd.GoToRecord , , acNewRec
    Me!Persnr = MaxWert + 1

Exit_Datensatz_anlegen_Click:
    rs.Close
    Set rs = Nothing
    Exit Sub
Err_Datensatz_anlegen_Click:
    MsgBox Err.Description
    Resume Exit_Datensatz_anlegen_Click
End Sub

Eine ander Variante ist direkt mit der Funktion
DMax("Feld","Tabelle",Kriterium)
oder
DLookup("Feldname","Abfrage","Kriterium") gibt dir den ersten Wert aus einer Abfrage oder Tabelle.

Siehe auch in der Hilfe nach dort sind die Funktionien beschrieben.

_________________
Gruss Lothi, der Bastler
Feedback ist die beste Möglichkeit mir zu sagen ob die Antwort geholfen hat!
AC2002, WinXP, Office XP
Tom2002
Der einzig Wahre Leuchtturm - Pilsum


Verfasst am:
31. Okt 2004, 23:10
Rufname:
Wohnort: Düsseldorf


AW: Per SQL maximalen Spaltenwert im VBA code ermitteln - AW: Per SQL maximalen Spaltenwert im VBA code ermitteln

Nach oben
       

hi,

hätte da folgendes anzubieten, als kleine korrektur Wink
Code:
Private Sub Datensatz_anlegen_Click()
On Error GoTo Err_Datensatz_anlegen_Click
    Dim rs As DAO.Recordset
    Dim db As DAO.Database
    Dim strsql As String
    Dim varMaxID As Long

    strsql = " SELECT Max([Nr]) AS MaxNr " & _
                " FROM Schwb"
    Set db = CurrentDb
    Set rs = db.OpenRecordset(strsql, dbOpenDynaset)
    varMaxID = rs.maxID
    rs.Close
    Set rs = Nothing
    Set db = Nothing
    DoCmd.GoToRecord , , acNewRec
    Me!Persnr = varMaxID + 1

Exit_Datensatz_anlegen_Click:
    Exit Sub
Err_Datensatz_anlegen_Click:
    MsgBox Error$
    Resume Exit_Datensatz_anlegen_Click
End Sub
oder wie gesagt mit DMAX, würd ich auch vorziehen
Code:
Private Sub Datensatz_anlegen_Click()
On Error GoTo Err_Datensatz_anlegen_Click
    DoCmd.GoToRecord , , acNewRec
    Me!Persnr = DMax("[Nr]", "Schwb") + 1

Exit_Datensatz_anlegen_Click:
    Exit Sub
Err_Datensatz_anlegen_Click:
    MsgBox Error$
    Resume Exit_Datensatz_anlegen_Click
End Sub
ciao

tom

_________________
Win7, Win2008 R2, Office 2010 Prof

Wer mit Fortuna Düsseldorf groß geworden ist, der fürchtet sich auch vor Access nicht.
Die Nutzlosigkeit des Daseins anzuerkennen heisst, Fortuna-Fan zu sein.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge Access Tabellen & Abfragen: Wie mache ich per Abfrage 305 -> K3.05? 2 Maik_25 793 21. Jan 2005, 10:38
Maik_25 Wie mache ich per Abfrage 305 -> K3.05?
Keine neuen Beiträge Access Tabellen & Abfragen: per SQL-Abfrage Feld füllen... 1 Gast 881 04. Jan 2005, 10:36
lothi per SQL-Abfrage Feld füllen...
Keine neuen Beiträge Access Tabellen & Abfragen: Tabelle per SQL umbennen (Access 2000) 2 DerPater 1085 09. Dez 2004, 14:02
Gast Tabelle per SQL umbennen (Access 2000)
Keine neuen Beiträge Access Tabellen & Abfragen: Ermitteln Anzahl der Arbeitstage eines Monates 4 schnecke 5033 01. Dez 2004, 11:58
schnecke Ermitteln Anzahl der Arbeitstage eines Monates
Keine neuen Beiträge Access Tabellen & Abfragen: Access SQL auskommentieren 2 excalibur 7157 21. Nov 2004, 20:24
excalibur1 Access SQL auskommentieren
Keine neuen Beiträge Access Tabellen & Abfragen: Alle Kundengeburtstage des Monats 'x' ermitteln. (Acess 2000 1 Hillbongo 679 25. Okt 2004, 12:48
STRIPPE Alle Kundengeburtstage des Monats 'x' ermitteln. (Acess 2000
Dieses Thema ist gesperrt, du kannst keine Beiträge editieren oder beantworten. Access Tabellen & Abfragen: Wenn-Dann-Sonst in SQL??? 2 SCHNEEMANN 998 18. Okt 2004, 17:26
Willi Wipp Wenn-Dann-Sonst in SQL???
Keine neuen Beiträge Access Tabellen & Abfragen: Wenn SQL Abfrage keine Werte gefunden hat, dann... 6 Danny G. 1787 30. Sep 2004, 18:19
Willi Wipp Wenn SQL Abfrage keine Werte gefunden hat, dann...
Keine neuen Beiträge Access Tabellen & Abfragen: SQL - Abfrage ob ein Wert in der Tabelle enthalten ist 1 notausgang 1301 23. Sep 2004, 09:42
stpimi SQL - Abfrage ob ein Wert in der Tabelle enthalten ist
Keine neuen Beiträge Access Tabellen & Abfragen: Mehrfachauswahl aus Listenfeld kombiniert mit SQL IN (...) 2 SMArmageddon 2417 01. Sep 2004, 15:07
SMArmageddon Mehrfachauswahl aus Listenfeld kombiniert mit SQL IN (...)
Keine neuen Beiträge Access Tabellen & Abfragen: Summe über mehrere Spalten ermitteln 6 WaterMan 1409 26. Jul 2004, 13:44
lothi Summe über mehrere Spalten ermitteln
Keine neuen Beiträge Access Tabellen & Abfragen: SQL Unterabfragen Not In, Not Exists 2 Winni 38088 13. Jul 2004, 13:23
Winni SQL Unterabfragen Not In, Not Exists
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: Expression Web Forum