collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 57
  • Punkt Versteckte: 1
  • Punkt Mitglieder: 1

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14066
  • stats Beiträge insgesamt: 67521
  • stats Themen insgesamt: 9099
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 415

Autor Thema: zu bestimmten DS im geteilten Formular springen  (Gelesen 655 mal)

Offline Xoar

  • Access-Profi
  • **
  • Beiträge: 401
zu bestimmten DS im geteilten Formular springen
« am: Dezember 14, 2017, 11:01:00 »
Hallo Leute, habe ein kleines aber nerviges Problem.

Ich möchte durch eine Sub in einem allgemeinem Modul zu einen bestimmten DS in einem geteilten Formular springen, irgendwie klappt das aber nicht so ganz.

Public Sub SpringeZuBestimmtenDatensatz(SpringeZuDS as variant)
if isNull(SpringeZuDS) then
  Form_frmFahrzeugBuchungen.Recordset.MoveFirst
else
 Form_frmFahrzeugBuchungen.Recordset.FindFirst = "FahrzeugID = " & SpringeZuID  'FahrzeugID ist ein Autowert
end if

Leider kommt ein Fehler sobald "SpringeZuDS" nicht null ist.
3251 Operation wird für diesen Objekttyp nicht unterstützt.

Hab mir gedacht das es wohl am Form.Recordset liegt,
habs also mit einem deklarierten Recordset versucht.

Dim rst as DAO.Recordset

set rst = Form_frmFahrzeugBuchungen.Recordset
  rst.FindFirst "FahrzeugID = " & SpringeZuID
  Form_frmFahrzeugBuchungen.Recordset.bookmark = rst.bookmark
rst.close

dann zeigt er mir aber immer nur noch einen DS in der Liste an, wo überall #Name drin steht.


Grüße
 

Offline Lachtaube

  • Access Guru
  • ****
  • Beiträge: 1336
Re: zu bestimmten DS im geteilten Formular springen
« Antwort #1 am: Dezember 14, 2017, 11:49:37 »
Code der nur in einem Formular genutzt werden kann, sollte auch dort verweilen. Die implizite Verwendung von Formularinstanzen über Form_XYZ ist IMHO auch kein guter Stil. So, genug gemeckert. :)

Welcher Datentyp wird denn von besagtem Feld verwendet?
Grüße von der (⌒▽⌒)
 

Offline Beaker s.a.

  • Access Guru
  • ****
  • Beiträge: 1885
Re: zu bestimmten DS im geteilten Formular springen
« Antwort #2 am: Dezember 14, 2017, 11:50:38 »
Hallo,
Versuche es mit mit einem RecordsetClone.
set rst = Form_frmFahrzeugBuchungen.RecordsetCloneAndere Frage, warum verwendest du eine Prozedur in einem allgemeinen
Modul, wenn du da nicht auch das Form parametrisierst?
Ich verwende dieses
Public Sub Bookmarken( _
        ByVal frm As Form, _
        ByVal varID As Variant, _
        ByVal edFeld As String)
'---------------------------------------------------------------------------------------
' Parameter : frm = aufrufendes Formular
'           : varID = DatensatzID  bzw. Suchbegriff (muss nicht unbedingt PK sein, deshalb Variant)
'           : edFeld = Feld in dem die ID (bzw. der Suchbegriff) steht
'           : damit ist man auch unabhängig vom PK bzw. vom Datentyp des durchsuchten Feldes, 
'           : da man in jedem Feld suchen/finden kann   
    Dim strKrit As String
    Dim rst As DAO.Recordset
   
    Set rst = frm.RecordsetClone
    strKrit = BuildCriteria(edFeld, rst.Fields(edFeld).Type, "=" & varID)
    rst.FindFirst strKrit
   
    frm.Bookmark = rst.Bookmark

 Ende_CleanUp:
    On Error Resume Next
    rst.Close
    Set rst = Nothing
    Exit Sub

End Sub
   

gruss ekkehard
« Letzte Änderung: Dezember 14, 2017, 11:54:48 von Beaker s.a. »
--
Beaker s.a., der lieber an seinem eigenen Projekt arbeiten würde/sollte, aber irgendwie immer gerne seinen Senf dazu gibt ;-)
S.M.I².L.E.
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 23445
Re: zu bestimmten DS im geteilten Formular springen
« Antwort #3 am: Dezember 14, 2017, 11:51:38 »
Hallo,

im ersten Code ist das "="-Zeichen bei Findfirst zuviel.

Beim 2. Code sollte sich Bookmark auf das Form beziehen.

Zudem würde ich nicht die Form-Klassen-Referenz benutzen, eher die Forms-Auflistung.

 Forms!frmFahrzeugBuchungen.Recordset.FindFirst  "FahrzeugID = " & nz(SpringeZuID,0)

oder, sofern sich der Code im selben Formular befindet:

 Me.Recordset.FindFirst "FahrzeugID = " & nz(SpringeZuID,0)



Offline Xoar

  • Access-Profi
  • **
  • Beiträge: 401
Re: zu bestimmten DS im geteilten Formular springen
« Antwort #4 am: Dezember 14, 2017, 12:21:35 »
@ekkehard
klappt wunderbar ;)

@Franz
klappt auch super und Aufgrund der Codekürze favorisiert ;)

Danke euch allen