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:
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:
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!
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.
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.