Funktion
"NumerierungInTabelle()"
Die Funktion fügt in eine beliebige Tabelle eine Nummerierung ein oder
nummeriert eine Bestehende neu.
Zum Aufruf der Funktion müssen der Tabellenname "TabNam" und
der Feldname "FldNam", des zu numerierenden Feldes angegeben werden.
Ob es sich um ein neues oder bereits vorhandenes Feld handelt lässt sich
über den Parameter "FldNeu" übergeben - FldNeu = -1 (neues
Feld) und
FldNeu = 0 (bestehendes Feld). Zusätzlich kann über den optionalen
Parameter "FldOrd" angegeben werden über welches Feld sortiert
werden soll.
Nachfolgender Aufruf, aus dem Direktfenster heraus, würde in die Tabelle
"Kunden" ein neues Feld "KndZaehler" anlegen und bei einer
Sortierung nach Kundenname eine Nummerierung in die Tabelle einfügen:
? NumerierungInTabelle("Kunden","KndZaehler",-1, "KndNam")
| Code: |
Public Function NumerierungInTabelle(TabNam As String, _
FldNam As String, _
FldNeu As Boolean, _
Optional FldOrd As String)
'---------------------------------------------------------------
' Die Funktion fügt in eine beliebige Tabelle eine Nummerierung
' ein oder nummeriert eine Bestehende neu.
'
' Zum Aufruf der Funktion müssen der Tabellenname "TabNam" und
' der Feldname "FldNam", des zu numerierenden Feldes angegeben
' werden.
'
' Ob es sich um ein neues oder bereits vorhandenes Feld handelt
' lässt sich über den Parameter "FldNeu" übergeben.
' FldNeu = -1 (neues Feld)
' FldNeu = 0 (bestehendes Feld)
'
' Zusätzlich kann über den optionalen Parameter "FldOrd" ange-
' geben werden über welches Feld sortiert werden soll.
'
' Nachfolgender Aufruf, aus dem Direktfenster heraus, würde in
' die Tabelle "Kunden" ein neues Feld "KndZaehler" anlegen und
' bei einer Sortierung nach Kundenname eine Nummerierung in die
' Tabelle einfügen:
'
' ? NumerierungInTabelle("Kunden","KndZaehler",-1, "KndNam")
'---------------------------------------------------------------
On Error GoTo Fehler
Dim DB As Database
Dim RS As Recordset
Dim FE As Field
Dim ZE As Long
Dim TD As TableDef
Dim AN As Long
Dim SQ As String
' Datenbank setzen
Set DB = CurrentDb()
' SQLString für Recordset festlegen
If FldOrd = "" Then
SQ = TabNam
Else
SQ = "SELECT * FROM [" & TabNam & "] ORDER BY [" & FldOrd & "];"
End If
' Feld in Tabelle einfügen wenn FldNeu=Wahr
Set TD = DB.TableDefs(TabNam)
If FldNeu = True Then
Set FE = TD.CreateField(FldNam, dbLong)
TD.Fields.Append FE
Set RS = DB.OpenRecordset(SQ, dbOpenDynaset)
Else
Set RS = DB.OpenRecordset(SQ, dbOpenDynaset)
Set FE = RS.Fields(FldNam)
End If
' Anzahl der Datensätze feststellen
RS.MoveLast
AN = RS.RecordCount
RS.MoveFirst
' RS durchlaufen und Zähler setzen
For ZE = 1 To AN
RS.Edit
RS.Fields(FldNam) = ZE
RS.Update
RS.MoveNext
Next ZE
' Recordset und Datenbank schließen
RS.Close
DB.Close
' Endemeldung ausgeben
MsgBox "Nummerierung über " & AN & " Zeilen angelegt.", _
64, "http://www.access-home.de"
ende:
Exit Function
Fehler:
MsgBox Err.Description, 16, "http://www.access-home.de"
Resume ende
End Function |
Viele weitere Tipps & Tricks aus der Praxis für die Praxis finden
Sie auf unserer AP-Access-Tools
Vol.1
| | | | 
|
Auf der AP-Access-Tools Vol.1 finden Sie weitere 320
Tipps & Tricks sowie 250 Access-Beispiel/Anwendungen mit offenen Quellcode!
Die Access-Tools-CD mit über 400 MByte Inhalt - für Access- und VB-Entwickler
256 Access-Beispiele mit offenem Code
45 Add-Ins und ActiveX-Komponenten (Freeware)
16 VB-Projekt inkl. Source
321 Tipps & Tricks für Access und VB
Plus 11 Entwicklerversionen (9 davon mit Source!)
Plus 3 Vollversionen und
Plus riesiger Datenpool
Holen Sie sich jetzt Ihre AP-Access-Tools-CD zum Superpreis von nur EUR 24,95! | | | | |
|
|