kleine Frage zu SQL. Gibt es einen SQL Befehl wo ich die größte Nummer
auslesen kann. Ich meine z.B.: bei LfdNr und diesen Wert dann einer
Variablen mLfdNr zuweisen?
Bin euch schon mal im voraus dankbar!
mfg Ramses
Select max(LfdNr) FROM tabelle
Gruß Philipp
"Steffen Rachel" <Rams...@web.de> schrieb im Newsbeitrag
news:9damtv$ta5$04$1...@news.t-online.com...
-> "Select max(LfdNr) from "...
Die Serialisierung ist zu beachten! Bei Mehrbenutzerbetrieb kann der ermittelte
Wert nicht ohne Probleme als Primärschlüssel benutzt werden, da zur gleichen Zeit
derselbe Wert ermittelt werden kann.
Greets
Oliver
-----Originalnachricht-----
Moin NG,
mfg Ramses
.
mLfdNr = "SELECT max(LfdNr) FROM tabelle"
mLfdNr = mLfdNr + 1
mfg Ramses
kleines Beispiel:
dim mLfdNr as Long
Data1.recordsource="SELECT max(LfdNr) FROM tabelle"
Data1.refresh
mLfdNr=Data1.recordset.fields(0).value
mLfdNr=mLfdNr+1
Die Fehlermeldung kommt daher, daß die Variable mLfdNr den Typ String besitzt, Du
aber eine Rechenoperation durchführen möchtest (verschiedene Datentypen!)
Bye
Oliver
-----Originalnachricht-----
mfg Ramses
.
hier ein kleines beispiel:
<sample>
Dim l_cn As ADODB.Connection
Dim l_rs As ADODB.Recordset
'Open connection.
Set l_cn = CreateObject("ADODB.Connection")
l_cn.Open "Provider=SQLOLEDB.1;" & _
"Data Source=Server;" & _
"Initial Catalog=Datenbank;" & _
"Integrated Security = """""
'Connection String fuer SQL-Server
'Musst du noch fuer Access anpassen
Set l_rs = CreateObject("ADODB.RecordSet")
l_rs.CursorLocation = adUseClient
l_rs.CursorType = adOpenStatic
l_rs.LockType = adLockOptimistic
l_rs.Open "SELECT max(LfdNr) as MaxLfdNr * FROM Tabelle", l_cn
mLfdNr = l_rs.Fields("MaxLfdNr")
</sample>
"Steffen Rachel" <Rams...@web.de> schrieb im Newsbeitrag
news:9dasum$95m$02$1...@news.t-online.com...
Bisher dachte ich, es wäre ein Datenbank-Problem. ;-)
Also analysieren wir mal den Code: mLfdNr ist vermutlich numerisch
deklariert, also Integer oder Long. So, dieser Variablen willst Du nun
einen String zuweisen. VB versucht beim Ausführen den String in eine
Zahl umzuwandeln. Das ginge noch bei
mLfdNr = "5"
aber hier muß es scheitern.
Was Du schreibst ist ein SQL-String. SQL ist eine Abfragesprache für
Datenbanken. Du mußt also den SQL an eine Datenbank schicken. Diese
liefert Dir das Ergebnis in Form eines Recordsets zurück. Aus dem
Recordset kannst Du nun den Wert herausholen.
Mehr kann ich dazu nicht sagen, da wir nicht wissen, welche
Datenzugriffskomponente Du verwendest (DAO oder ADO?), ob und wie die
Datenbank-Objekte deklariert sind.
Armin