PDA

Vollständige Version anzeigen : Feld ist schon vorhanden! HILFE!!


Alina
05.02.2001, 09:14
Hallo Leute!
Ich hab eine Formular in Datendlatt ansicht! Meine eine feld heißt Name!Ich möchte jetzt, wenn ich eine neue name eintrage, daß erst gesucht wird ob diese name schon existiert!Wenn ja möchte ich eine Msgbox kriegen und meine focus in dieses feld setzen wo der name schon existiert!Wenn nein dann soll ich einfach weiter schreiben können!

Can you help me please??????

Danke
Alina

Mario Kobolla
05.02.2001, 10:18
Hallo,
auf die Schnelle kann ich nur folgenden Quellcode anbieten:

Private Sub Namex_AfterUpdate()

On Error GoTo ErrHandler 'Fehlerbehandlung aktivieren

Dim SuchString As String 'Der gesuchte Name
Dim db As Database 'Datenbankvariable
Dim rs As Recordset 'Recordsetvariable
Dim Ende As Long 'Definiert das Ende der Tabelle

Set db = CurrentDb 'Bezug auf die aktuelle Datenbank
Set rs = db.OpenRecordset("Tabelle", dbOpenDynaset) 'Bezug auf die zu durchsuchende Tabelle
rs.MoveLast 'Geht ans Ende der Tabelle
Ende = rs.RecordCount 'Merkt sich das Ende der Tabelle
rs.MoveFirst 'Geht wieder an den Anfang der Tabelle
SuchString = Me.Namex.Text 'Sucht den eingegebenen Namen

rs.FindFirst "[Name] = '" & SuchString & "'" 'versucht den ersten Namen zu finden

If rs.NoMatch = True Then Exit Sub 'Wenn es den Namen nicht gab, Prozedur verlassen

'****************** Ab hier beginnt die "Trefferanzeige " *******************************************************
MsgBox "Mögliche Doublette gefunden" ' Meldung, dass es den Namen schonmal gab

DoCmd.FindRecord SuchString, acEntire, False, , False, , True 'Bewegt den Fokus auf den "Treffer"

Do Until MsgBox("Weitersuchen?", vbYesNo) = vbNo 'Sooft suchen, bis der Benutzer beendet
DoCmd.FindNext 'Sucht den nächsten Namen
If Me.CurrentRecord = Ende Then Exit Do 'Anhören falls das Ende der Tabelle erreicht ist
Loop 'Schleifenende

Set db = Nothing 'Die Variablen löschen
Set rs = Nothing 'Die Variablen löschen

Exit Sub
'******************* Fehlerbehandlung ****************************************************************************
ErrHandler:
MsgBox "Fehler Nummer: " & Err.Number & vbCrLf & AccessError(Err.Number)


End Sub


Den Code müsstes Du in das Ereigniss "Nach Aktualisierung" reinkopieren.
Wichtig: Das Feld "Name" mußt Du noch ändern in "Namex", da "Name" ein vordiefinierter Name von dem Formular ist und es damit nicht klappte.

Falls Du noch Fragen hast, kannst Du mich kontaktieren unter: mario.kobolla@bhf-bank.com

Viel Glück.

MarkusR
05.02.2001, 12:08
Kann man da nicht einfach einen eindeutigen Index auf das Feld machen?

Die Index-Verletzung gäbe dann einen Auffangbaren Fehler, nach dem man den Fokus in das Feld setzen kann.

Ausserdem...Ein Feld "Name" zu nennen ist etwas ungeschickt (reserviertes Wort)

Gruß

Markus

Alina
05.02.2001, 14:02
Hallo Leute!
Ich denke ich hab Euch mein Problem nicht richtig erklärt!

SO:
Ich habe Mitglieder und jedes Mitglied hat eine Mannschaft!Durch eine Suchmaschine kann ich ein Mitgied aussuchen!Nach dem ich ein Mitglied ausgesucht habe komm ich in eine Formular rein(hauptformular)mit zwei registerkarten(Unterformularen)!In meine hauptformular stehen die daten von mein Mitglied und in der eine Registerkarte(Mannschaft) stehen die Namen den Leuten ,die in den Mannschaft drin sind!
Wenn ich jetzt eine neuer Name eintrage,soll gesucht werden ob dieser Name schon existiert,aber nur für meinen ausgewähter Mitglied!Wenn ja möchte ich eine Msgbox kriegen und der Fokus in diese Feld setzen wo meine gleiche Name ist!

Kann mir BITTE jemand HELFEN????

Danke
Alina