Access-o-Mania

Access-Forum (Deutsch/German) => Formular => Thema gestartet von: Tigra1207 am Juli 18, 2011, 00:37:41

Titel: Datensätze nummerieren im Unterformular
Beitrag von: Tigra1207 am Juli 18, 2011, 00:37:41
Hallo, ich habe eine Frage zu meiner Datenbank:

Ich habe ein Formular und dazu ein UF. Ich möchte gerne die Datensätze je nach anzahl und Auswahl im Kombifeld nummerieren und aktualisieren nach einer weiteren Auswahl vom Kombifeld:

Code habe ich aus http://www.donkarl.com/faq/FAQ4Formulare.htm#4.39


Private Sub Unterformular_Fragpo_Enter()
Function FctNr()
'gibt eine laufende Nummer im Formular zurück
'Anzeige im Formular durch ein Feld mit Steuerelementinhalt: =FctNr()

  On Error GoTo FctNr_Error

  Me.RecordsetClone.Bookmark = Me.Bookmark
  FctNr = Me.RecordsetClone.AbsolutePosition + 1

FctNr_Exit:
  Exit Function

FctNr_Error:
  If Err.Number = 3021 Then FctNr = 0   'bei neuem DS
  Resume FctNr_Exit

End Function
End sub


Und beim Textfeld im Steuerelementinhalt habe ich dann =FctNr() geschrieben.
Jedoch bekomme ich im Textfeld die Fehlermeldung= #Name

Kann jemand helfen? Danke
Marco
Titel: Re: Datensätze nummerieren im Unterformular
Beitrag von: oma am Juli 18, 2011, 01:07:40
Hallo Marco

du musst den Code nur richtig übernehmen:

Private Sub Unterformular_Fragpo_Enter()
Function FctNr()
'gibt eine laufende Nummer im Formular zurück
'Anzeige im Formular durch ein Feld mit Steuerelementinhalt: =FctNr()

  On Error GoTo FctNr_Error

  Me.RecordsetClone.Bookmark = Me.Bookmark
  FctNr = Me.RecordsetClone.AbsolutePosition + 1

FctNr_Exit:
  Exit Function

FctNr_Error:
  If Err.Number = 3021 Then FctNr = 0   'bei neuem DS
  Resume FctNr_Exit

End Function
End sub
Titel: Re: Datensätze nummerieren im Unterformular
Beitrag von: Tigra1207 am Juli 18, 2011, 12:51:42
Vielen Dank für die schnelle Antwort. Habe das alles so befolgt.

Leider ist nach wie vor die Fehlermeldung: #Name im Textfeld.

Zur Info:

HF mit Kombifeld und UF mit den Datensätzen. Nach Auswahl listen sich die Datensätze auf im UF und die hätte ich gerne nummeriert. Steuerelementinhalt des Textfeldes: =FctNr()

Objektliste steht:(Allgemein) und in der Prozedurliste: FctNr



Function FctNr()
'gibt eine laufende Nummer im Formular zurück
'Anzeige im Formular durch ein Feld mit Steuerelementinhalt: =FctNr()

  On Error GoTo FctNr_Error

  Me.RecordsetClone.Bookmark = Me.Bookmark
  FctNr = Me.RecordsetClone.AbsolutePosition + 1

FctNr_Exit:
  Exit Function

FctNr_Error:
  If Err.Number = 3021 Then FctNr = 0   'bei neuem DS
  Resume FctNr_Exit

End Function


Hast du evtl. noch eine Idee?

Gruß Marco
Titel: Re: Datensätze nummerieren im Unterformular
Beitrag von: database am Juli 18, 2011, 13:42:04
Hallo,

scheinbar hat sich da irgendwo ein Fehler eingeschlichen.
Verwirf mal A L L E S was du bisher damit angestellt und versucht hat und beginne nochmal von Vorne.
Wenn du das Textfeld und etwaige Codes aus dem UNTERFORMULARMODUL rausgeschmissen hast, speichere die DB und komprimiere/repariere mal.


1. Erstelle im UNTERFORMULAR (Detailbereich) ein Textfeld Name des Textfeldes egal - nenne es einfach mal 'txtNr'.
2. Kopiere die Function ins Formularmodul des UNTERFORMULARS (keinerlei Bindung an ein Ereignis)
3. Im Entwurfsmodus des (UNTER)Fromulars schreibe in der Registerkarte 'Daten' unter 'Steuerelementinhalt' ... = fctNr()

Wenn du nichts umbenannt hast und die Function so übernommen hast wie Oma das korrigiert reingestellt hat, dann funktioniert das!  ;)


[Anhang gelöscht durch Administrator]
Titel: Re: Datensätze nummerieren im Unterformular
Beitrag von: Tigra1207 am Juli 18, 2011, 21:49:55
Hallo, danke für die Antwort.

Ich scheiter ab Punkt 2.
Zitat2. Kopiere die Function ins Formularmodul des UNTERFORMULARS (keinerlei Bindung an ein Ereignis)
Wenn ich den Code Function FctNr() in das Formularmodul einfüge, mach ich das doch so:
Unter Datenbanktools in Visual Basic gehen. Dort im Objektfenster das Unterformular auswählen und im Prozedurfenster frei lassen. Ist das so richtig? Dann den Code einfügen.

Zitat3. Im Entwurfsmodus des (UNTER)Fromulars schreibe in der Registerkarte 'Daten' unter 'Steuerelementinhalt' ... = fctNr()
Leider steht bei mir im Entwurfsmodus des Unterformulars bei Daten "Herkunftsobjekt, Verknüpfen nach Verknüpfen vor" kein Steuerelement.

Könnte mir jemand einen Tip geben? Danke

Gruß Marco
Titel: Re: Datensätze nummerieren im Unterformular
Beitrag von: DF6GL am Juli 19, 2011, 08:21:45
Hallo,


2. was heißt  ".. frei lassen" ?   Im Formularmodul können ja noch andere Prozeduren stehen. Kopier die Funktion einfach komplett   zusätzlich in dieses Prozedurfenster   (an eine "freie" Stelle im Formularmodul,  falls die nicht schon drinsteht)

3. da ist natürlich "Steuerelemementinhalt des Textfeldes, das die laufende Nr anzeigen soll" gemeint... (lt. Deiner anfänglichen Beschreibung hast Du das schon)
Titel: Re: Datensätze nummerieren im Unterformular
Beitrag von: database am Juli 19, 2011, 13:27:12
Hallo,

ZitatDort im Objektfenster das Unterformular auswählen  ...
...mit Doppelklick auswählen, dann kommst du direkt ins Form-Modul, dann weiter wie Franz schon angemerkt hat.

Zitatda ist natürlich "Steuerelemementinhalt des Textfeldes ...
Klaro, sorry, habe vergessen zu erwähnen, dass du das Steuerelement zuerst auswählen musst.
Also in der Registerkarte 'Daten' vom Textfeld 'txtNr' bei Steuerelementinhalt (=1.Zeile) muss dann das =fctNr() hin!

Das Zeugs muss funktionieren  ;D ::)
Titel: Re: Datensätze nummerieren im Unterformular
Beitrag von: Tigra1207 am Juli 19, 2011, 21:25:49
Guten Abend, ich kann mich nur bedanken das Ihr immer ansprechbar seit.

Leider klappt es immer noch nicht. Ich habe mal Screenshots gemacht. Könntet ihr mal bitte drüberschauen? Irgendwie klappt es noch nicht mit dem Ufo und der Nummerierung.

Vielen Dank

Gruß Marco

[Anhang gelöscht durch Administrator]
Titel: Re: Datensätze nummerieren im Unterformular
Beitrag von: DF6GL am Juli 19, 2011, 21:36:54
Hallo,



die Funktion steht sehr wahrscheinlich im Hauptformular(modul) und nicht im Unterformular(modul).
Titel: Re: Datensätze nummerieren im Unterformular
Beitrag von: Tigra1207 am Juli 19, 2011, 22:47:22
Hallo,

habe die Funktion jetzt ins UF Modul gepackt(siehe Anlage)

Aber gleiches Problem: #Name im Textfeld...

Muss ich da noch irgendwas beachten?

Gruß Marco

[Anhang gelöscht durch Administrator]
Titel: Re: Datensätze nummerieren im Unterformular
Beitrag von: DF6GL am Juli 19, 2011, 22:58:43
Hallo,

da hast Du (wieder) falsch gepackt...

entferne die Zeilen
Private Sub Unterformular_Fragpo_Enter()


und

End Sub

(nach "End Function")
Titel: Re: Datensätze nummerieren im Unterformular
Beitrag von: Tigra1207 am Juli 19, 2011, 23:30:18
Hallo,

habe das geändert und immernoch steht dort #Name im Textfeld.

Habe die Datenbank angehängt. Irgendwo ist der Schnitzer drin.

Unter frmVersuch ist meine Problematik.

Danke

Gruß Marco

[Anhang gelöscht durch Administrator]
Titel: Re: Datensätze nummerieren im Unterformular
Beitrag von: DF6GL am Juli 20, 2011, 10:00:15
Hallo,


anbei..

1)Funktion in ein Standardmodul gelegt.
2) "Me" durch Funktionsargument ersetzt"
3) Im Aufruf akt. Form-Objekt als Parameter angegeben.

[Anhang gelöscht durch Administrator]
Titel: Re: Datensätze nummerieren im Unterformular
Beitrag von: Tigra1207 am Juli 20, 2011, 20:50:40
Ich möchte mich sehr bedanken. Alles geklappt und selbst nochmal probiert.

Vielen Dank ihr seid klasse :D