Access97 - Indiziertes Feld

Hallo,

kann mir jemand helfen? Ich habe eine Access97 Datenbank mit den Feldern:

Feldname Felddatentyp
ID…Autowert
Nr…Text
usw.

ID ist auch Primärschlüssel, das Feld Nr soll indiziert werden mit Ja (ohne Duplikate) geht aber nicht weil es nur einen Autowert geben darf.

Ich suche eine Lösung wie es möglich ist in das Feld Nr nur Daten einzugeben, welche es nur einmal gibt. Vielleicht kann man das auch bei der Eingabe im Formular kontrollieren? Das Feld Nr habe ich auf Text eingestellt, weil die Eingabe z.B. so aussehen kann:

200911-ABC01XY

Gruß Ortwin09

Hallo,

kann mir jemand helfen? Ich habe eine Access97 Datenbank mit
den Feldern:

Feldname Felddatentyp
ID…Autowert
Nr…Text
usw.

ID ist auch Primärschlüssel, das Feld Nr soll indiziert werden
mit Ja (ohne Duplikate) geht aber nicht weil es nur einen
Autowert geben darf.

Ein eindeutiger Index braucht nicht notwendigerweise ein Autowert zu sein…

Ich suche eine Lösung wie es möglich ist in das Feld Nr nur
Daten einzugeben, welche es nur einmal gibt.

Markiere im Tabellenentwurf das Feld „Nr“ und stelle in den Eigenschaften unter „Indiziert“ auf „Ja, ohne Duplikate“ ein.

(Ich hoffe, unter A97 ist das auch so (ähnlich), lang ist’s her…)

Vielleicht kann
man das auch bei der Eingabe im Formular kontrollieren?

kann man:

Sub Nr_Beforupdate(Cancel as Integer)
If Dcount("*",„tblTabelle“,„Nr=’“ & Me!Nr & „’“) > 0 then
Msgbox „Nr gibt es schon“
Cancel=true
Me.Undo
End If
End Sub

Das
Feld Nr habe ich auf Text eingestellt, weil die Eingabe z.B.
so aussehen kann:

200911-ABC01XY

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Danke für die schnelle Antwort, aber es geht nicht auf Anhieb deshalb nochmal genauer:

Meine Tabelle heißt: Rechnungen

Rechnungsdatenbank hat eine 1:n Verknüpfung

ID ist also die laufende Nr. der Rechnung
ID der Verknüpfung immer gleich für die entsprechende Rechnung soweit geht das. Das zweite Feld hat die genaue Bezeichnung „RNr“ sowohl der Feldname als auch der Name im Formlar heißt so. Um diese Feld geht es.

Die versuchte Prozeture ist

Private Sub RNr_BeforeUpdate(Cancel As Integer)
If DCount("*", "[Rechnungen]![ID] ", „RNr=’“ & Me!RNr & „’“) > 0 Then
MsgBox „Nr gibt es schon“
Cancel = True
Me.Undo
End If
End Sub

geht aber nicht ich denke es ist ein Fehler in der IF Zeile?

Anmerkung, kann ID nicht als Rechnungsnummer nehmen!

Ortwin09

Danke für die schnelle Antwort, aber es geht nicht auf Anhieb
deshalb nochmal genauer:

Meine Tabelle heißt: Rechnungen

Rechnungsdatenbank hat eine 1:n Verknüpfung

ID ist also die laufende Nr. der Rechnung
ID der Verknüpfung immer gleich für die entsprechende Rechnung
soweit geht das. Das zweite Feld hat die genaue Bezeichnung
„RNr“ sowohl der Feldname als auch der Name im Formlar heißt
so. Um diese Feld geht es.

Die versuchte Prozeture ist

Private Sub RNr_BeforeUpdate(Cancel As Integer)
If DCount("*", "[Rechnungen]![ID] ", „RNr=’“ & Me!RNr & „’“) >
0 Then
MsgBox „Nr gibt es schon“
Cancel = True
Me.Undo
End If
End Sub

Warum nimmst Du nicht meinen vorgeschlagenen Code und paßt nur die Namen an?
(Es wäre auch von Vorteil, gleich mit den realen Namen zu fragen…)

If DCount("*", „Rechnungen“, „RNr=’“ & Me!RNr & „’“) > 0 Then

Anmerkung, kann ID nicht als Rechnungsnummer nehmen!

das ist auch nicht nötig. Möglich wäre aber, gleich das Feld „RNR“ als Primärschlüssel zu definieren.

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Danke nochmal, jetzt funktioniert alles mit den Feldnamen war mein Fehler ich war an einem anderen PC und wußte die Feld Namen bei der ersten Anfrage nicht genau.
Also nochmals Dank.

Gruß Ortwin09