Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Recordset Clone problem!?

Begonnen von silentwolf, August 09, 2011, 09:42:37

⏪ vorheriges - nächstes ⏩

silentwolf

Hallo ich mal wieder ;)
Folgender Code hab ich aus donKarl um einen bestimmten Datensatz in einem neuen Formular anzuzeigen.


Private Sub Form_Current()
Dim rs As DAO.Recordset

Set rs = Forms!frmKunKorr.RecordsetClone

'im RecordsetClone von Formular2 die Id aus dem aktuellen Formular finden
rs.FindFirst "Kun_id = " & Me!Kun_id
If Not rs.NoMatch Then
  'Anzeige im Formular2 mit dessen RecordsetClone synchronisieren
  Forms!frmKunKorr.Bookmark = rs.Bookmark
End If

Set rs = Nothing
End Sub

Nun bekomme ich aber eine Fehlermeldung das er frmKunKorr nicht findet also Access kann diese Form nicht finden.
Hab natürlich meine Schreibweise kontrolliert und na ja das Formular existiert.
Warum findet Access denn diese Form nicht?
Was habe ich übersehen??

Vielen Dank!!!!

Glg Albert

silentwolf

Hallo habe nun den Code geändert aber noch immer nicht ganz was ich brauche.

Mit dem code den ich jetzt so bearbeitet habe gibt es nun folgendes problem.

Private Sub Form_Current()
If CurrentProject.AllForms!frmKunKorr.IsLoaded Then
   Dim rs As DAO.Recordset
   Set rs = Forms!frmKunKorr.RecordsetClone

   'im RecordsetClone von Formular2 die Id aus dem aktuellen Formular finden
   rs.FindFirst "Kun_id_f = " & Me!Kun_id
      If Not rs.NoMatch Then
         'Anzeige im Formular2 mit dessen RecordsetClone synchronisieren
         Forms!frmKunKorr.Bookmark = rs.Bookmark
      End If
   rs.Close
   Set rs = Nothing
Else: DoCmd.OpenForm "frmKunKorr", , , "Kun_id_f = " & Me!Kun_id
End If
End Sub

jetzt zeigt es mir die frmKunKorr an wenn ich in meinem Formular auf die Kun_id klicke (Mein Formular ist geteilt) also im Datenblatt.

1. Zeigt es mir jetzt nur die Kun-id an wenn ich eine Korrespondenz habe ansonsten bleibt die Kun_id leer?
2. Öffnet es mir immer die frmKunKorr.

Ich habe aber einen button erstellt der mir eigentlich die frmKuKorr anzeigen soll und das mit der jeweiligen Kun_id die ich gerade ausgewählt habe.

Also stimmt das ganze noch nicht ganz.

Hoffe jemand kennt dieses Problem und könnte mir helfen.

Vielen Dank!!!

silentwolf

Hallo noch mals zu diesen Problem.

Hab jetzt schon mehrere Dinge probiert aber immer noch kein richtiges Ergebniss.

Wenn ich nun nur diesen Code in mein click event geben öffnet es mir auch schon das Formular.
Nur habe ich immer noch das selbe problem das der Kun_id nicht angezeigt wird wenn kein Eintrag vorhanden ist.

DoCmd.OpenForm "frmKunKorr", , , "Kun_id_f = " & Me!Kun_id

das wäre der Code..

Habe ich vieleicht einen Fehler im frmKunKorr

Weis leider nicht weiter und würde gern mehrere Schaltflächen in meinen Hauptformular einbinden um verschiedene Unterformulare zu öffnen.

Danke

database

Hallo,

verstehe ich das richtig?
Zitat...das der Kun_id nicht angezeigt wird wenn kein Eintrag vorhanden ist....

Ja was willst du denn auch sehen, wenn es keinen Datensatz gibt?

silentwolf

Hallo Peter,
Na ja das stimmt das ich dann nichts sehen kann!
Ja das ist mir schon klar das ich keine Daten sehen kann aber ich muss dann die Kun_id seperat eingeben.
Wenn ich z.B. ein Unterformular erstelle und in eine Form gebe erscheint ja immer die dazugehörige Kun_id
und wird dann in die richtigen Kunden zugeteilt.

Weist was ich meine??


database

Naja, ich hoffe dass ich dich verstanden habe.

mit....
DoCmd.OpenForm "frmKunKorr", , , "Kun_id_f = " & Me!Kun_id


übergibst du die KundenID nicht ans Formular oder eines der Formularfelder sondern bestimmst, welcher Datensatz angezeigt werden soll.
Existiert nun kein passender DS, dann wirst du ein leeres Form erhalten.

Setze mal probeweise folgende Zeile nach dem Formularaufruf:

Forms!frmKunKorr!DeinKundenIDFeld=" & Me!Kun_id

Damit müsste dann eigentlich die KundenID in das KundenID-Feld des geöffneten Formulars eingetragen werden.

silentwolf

Hallo Peter,
danke für Deine Antwort!
Gehört dieser Code nun in das neue also das formular das aufgemacht wird?
Also meines heist frmKunKorr
und wenn ja wird dieser in nach Aktualisierung als ereigniss gegeben??

Vielen Dank

silentwolf

Folgenden Code hab ich probiert

Private Sub Form_Open(Cancel As Integer)
Forms!frmKunKorr!Kun_id_f = " & Me!Kun_id"
End Sub

Da bekomme ich eine Fehlermeldung ... diesen Objekt kann kein Wert hinzugefügt werden :(


database

Hallo

nicht ins Formular frmKunKorr !


sondern nach dem Befehl zum Öffnen des Formulars...

        ...
        ...
        rs.Close   
        Set rs = Nothing

    Else   

        DoCmd.OpenForm "frmKunKorr", , , "Kun_id_f = " & Me!Kun_id
         
        Forms!frmKunKorr!Kun_id_f=" & Me!Kun_id

End If

End Sub


Sollte eigentlich funktionieren.

p.s. ich habe nach Else den : rausgenommen...

Möglicherweise gibt es jetzt noch Probleme, wenn das Form nicht schnell genug geöffnet wird und somit das Formularfeld nicht angesprochen werden kann.

DF6GL

Hallo,

eigentlich benutzt Du gar kein "Unter-" Formular, sondern nur ein separat geöffnetes Form...


Die "Verknüpfung" der Schlüsselfelder,die in einem UFO-Steuerelement von Access selber gemanaged wird, mußt Du in Deinem Fall selber zusammenbasteln:

Sub btnDetailForm_Click()
DoCmd.OpenForm "frmKunKorr", , , "Kun_id_f = " & Me!Kun_id , , ,Me!Kun_id
End Sub

und im Form "frmKunKorr"

Sub Form_Load()
If not IsNull(Me.Openargs) Then Me!Kun_id_f.Defaultvalue =Me.Openargs
End Sub


und das Form Daten anfügen zuläßt.

silentwolf

Hallo Franz,
danke erstmals für Deine Antwort!!
Hab es auch probiert leider bekomme ich noch immer die Kun_id in mein Feld.
Es gibt auch keine Fehlermeldung.

Weis nicht was hier falsch ist   :-[

Danke auf alle Fälle!

DF6GL

Hallo,

dann halt mal die DB hier hochladen (komprimiert/repariert  und gezippt, mit ein paar authentischen Speildaten.)

silentwolf

Hallo Franz,
ja mach ich nur ich habe keine Version wo ich keine Daten drinnen habe ??
Auch kann ich meine db nicht mehr auf 2003 ändern.

Wie kann ich am schnellsten daten löschen?

Danke

DF6GL

Hallo,

es geht auch A2007 (A2010)..


Daten Löschen :
Entweder Löschabfrage(n) oder Tabelle öffnen und links oben klicken, um die gesamte Tabelle zu markieren, dann Taste <<Entf>>  drücken.



silentwolf

Hallo Franz,
na schade jetzt bist weg :(
Hatte einiges zu tun um die db so zuverkleinern damit ich diese auch senden hab können.

HOffe Du kannst Sie Dir noch ansehen.

Vielen Dank

Albert

[Anhang gelöscht durch Administrator]