bookmark

26/10/2008 - 16:19 von Philippe Malmedé | Report spam
hallo

habe am wochende gebastelt

jetzt bin ich wieder hàngengeblieben

folgender code

Private Sub bearbeiten_aktuellen_datensatz_Click()
Dim sqlbefehl As String
Dim db As DAO.Database
Dim queTemp As DAO.QueryDef
Dim sortieren As String
Dim VarLesezeichen As Variant
Dim rs As Object


Set db = CurrentDb


Select Case suchen_nach_nummer_name
Case 1
Select Case sortieren_rauf_runter
Case 1
sqlbefehl = "select artikel_nummer, artikel_name, artikel_name2,
artikel_vk " & _
"from tbl_s_artikel " & _
"where artikel_nummer like '" & textsuch & "' " & _
"order by artikel_nummer asc ;"

Case 2
sqlbefehl = "select artikel_nummer, artikel_name, artikel_name2,
artikel_vk " & _
"from tbl_s_artikel " & _
"where artikel_nummer like '" & textsuch & "' " & _
"order by artikel_nummer desc ;"

End Select

Case 2
Select Case sortieren_rauf_runter
Case 1
sqlbefehl = "select artikel_nummer, artikel_name, artikel_name2,
artikel_vk " & _
"from tbl_s_artikel " & _
"where artikel_name like '" & textsuch & "' " & _
"order by artikel_name asc ;"

Case 2
sqlbefehl = "select artikel_nummer, artikel_name, artikel_name2,
artikel_vk " & _
"from tbl_s_artikel " & _
"where artikel_name like '" & textsuch & "' " & _
"order by artikel_name desc ;"

End Select
End Select

Set rs = db.OpenRecordset(sqlbefehl, dbOpenSnapshot)

VarLesezeichen = rs.Bookmark

MsgBox VarLesezeichen

DoCmd.OpenForm "Daten_bearbeiten", acNormal
rs.Bookmark = VarLesezeichen
End Sub

alles klappt nur nicht wenn ich das open form aufmache er automatisch den
letzten aktiven datensatz anspringt sonder er geht immer zum ersten aus dem
sqlbefehl

für hilfe wàr ich dankbar

gruß

Philippe
 

Lesen sie die antworten

#1 Thomas Möller
26/10/2008 - 17:03 | Warnen spam
Hallo Philippe,

Philippe Malmedé schrieb:

ich habe Deine Frage glaube ich nicht richtig verstanden. Ich hàtte aber
wieder ein Paar Anregungen zum Code:

Private Sub bearbeiten_aktuellen_datensatz_Click()
Dim sqlbefehl As String
Dim db As DAO.Database
Dim queTemp As DAO.QueryDef
Dim sortieren As String
Dim VarLesezeichen As Variant
Dim rs As Object



Wenn es sich bei dieser Variable um ein Recordset handelt, warum
deklarierst Du diese dann nicht als solches:

Dim rs As DAO.Recordset


Set db = CurrentDb


Select Case suchen_nach_nummer_name



Woher stammt eigentlich "suchen_nach_nummer_name"? Wo ist das
deklariert? Welcher Wert steht da drin?

Case 1
Select Case sortieren_rauf_runter
Case 1
sqlbefehl = "select artikel_nummer, artikel_name, artikel_name2,
artikel_vk " & _
"from tbl_s_artikel " & _
"where artikel_nummer like '" & textsuch & "' " & _
"order by artikel_nummer asc ;"

Case 2
sqlbefehl = "select artikel_nummer, artikel_name, artikel_name2,
artikel_vk " & _
"from tbl_s_artikel " & _
"where artikel_nummer like '" & textsuch & "' " & _
"order by artikel_nummer desc ;"

End Select

Case 2
Select Case sortieren_rauf_runter
Case 1
sqlbefehl = "select artikel_nummer, artikel_name, artikel_name2,
artikel_vk " & _
"from tbl_s_artikel " & _
"where artikel_name like '" & textsuch & "' " & _
"order by artikel_name asc ;"

Case 2
sqlbefehl = "select artikel_nummer, artikel_name, artikel_name2,
artikel_vk " & _
"from tbl_s_artikel " & _
"where artikel_name like '" & textsuch & "' " & _
"order by artikel_name desc ;"

End Select
End Select



Das ganze Select-Case-Konstrukt kannst Du wesentlich schlanker halten,
wenn Du die konstanten Teile des SQL-String nur einmal definierst:

sqlbefehl = "select artikel_nummer, artikel_name, artikel_name2, " & _
"artikel_vk " & _
"From tbl_s_artikel " & _
"Where artikel_nummer like '" & textsuch & "' " & _

Select Case suchen_nach_nummer_name
Case 1
Select Case sortieren_rauf_runter
Case 1
sqlbefehl =sqlbefehl & "order by artikel_nummer asc ;"
Case 2
sqlbefehl =sqlbefehl & "order by artikel_nummer desc ;"
Case Else
MsgBox "Ungültige Daten", vbCritical
End Select
Case 2
Select Case sortieren_rauf_runter
Case 1
sqlbefehl =sqlbefehl & "order by artikel_name asc ;"
Case 2
sqlbefehl =sqlbefehl & "order by artikel_name desc ;"
Case Else
MsgBox "Ungültige Daten", vbCritical End Select
Case Else
MsgBox "Ungültige Daten", vbCritical End Select
End Select


Außerdem habe ich jeweils einen Case-Else-Zweig eingefügt.


Set rs = db.OpenRecordset(sqlbefehl, dbOpenSnapshot)

VarLesezeichen = rs.Bookmark

MsgBox VarLesezeichen

DoCmd.OpenForm "Daten_bearbeiten", acNormal
rs.Bookmark = VarLesezeichen



Hier fehlt am Ende noch das obligatorische Schließen der geöffneten Objekte:

rs.Close
Set rs = Nothing
Set db = Nothing

End Sub

alles klappt nur nicht wenn ich das open form aufmache er automatisch den
letzten aktiven datensatz anspringt sonder er geht immer zum ersten aus dem
sqlbefehl



Dies hier ist der Satz, den ich nicht verstehe. Vielleicht kannst Du
noch einmal, mit anderen Worten, beschreiben, wo genau Dein Problem liegt.

CU
Thomas

Homepage: www.Team-Moeller.de

Ähnliche fragen