PDA

Vollständige Version anzeigen : HILFE!!!!!


Alina
06.02.2001, 08:10
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 von dieses Mitglied drin sind!
Wenn ich jetzt eine neuer Name(auf meine registerkarte) eintrage,soll gesucht werden ob dieser Name schon existiert,aber nur für mein ausgewähtes Mitglied!Wenn ja möchte ich eine Msgbox kriegen und der Fokus in diese Feld setzen wo meine gleiche Name ist!

Meine unterformular in meine Registerkarte ist in Datenblatt ansicht und das Feld mit dem ich meine Eintrag vergleichen muß heist mname!

Kann mir BITTE jemand HELFEN????

Danke
Alina

Ras
06.02.2001, 14:23
Hi Alina,
die unten stehende Prozedur kommt als Ereignis Nach Aktualisieren in das Feld,
wo Du den Namen eingibst...
Tabelle1 ist die Tabelle mit den Mannschaftsnamen...
ID ist das Verknüpfungsfeld zwischen Mitglied und Mannschaft...
Tabe ist das Unterformular mit der Liste der Mannschaftsleute...
UF ist das andere Unterformular, wo der Name steht, den Du eingibst...

Private Sub Name_AfterUpdate()
Dim stid As String, db As Database, rst As Recordset
stid = "SELECT * FROM Tabelle1 " & "WHERE [Name] = " & "'" & Me![Name] & "' AND [ID] = " & Me![ID]
Set db = CurrentDb()
Set rst = db.OpenRecordset(stid)
If Not rst.NoMatch Then GoTo hinweis
Exit Sub
hinweis:
MsgBox "Es gibt bereits einen Mitspieler mit diesem Namen!", vbExclamation, "Hinweis"
Forms!Stammdaten!Tabe.SetFocus
DoCmd.GoToRecord , , acFirst
schleife:
If Forms!Stammdaten!UF![Name] <> Forms!Stammdaten!Tabe![Name] Then
DoCmd.GoToRecord , , acNext
Else
Exit Sub
End If
GoTo schleife
End Sub

...ich hoffe, ich konnte helfen,
Wiesiek

Alina
06.02.2001, 15:12
Hallo Ras

DANKE DANKE für deine Hilfe!
Aber der eintrag des neues Namens mach ich in der "Tabe"!
Am ende des Datenblattes kann ich neue datensätze eintragen!Dieses Feld heißt Name und da möchte ich gucken ob oben in der gleiche Feld der Name nochmal eingetragen ist!

Ich hoffe du kannst mich verstehen!

Wie kann ich dann diese stelle schreiben??
If Forms!Stammdaten!UF![Name] <> Forms!Stammdaten!Tabe![Name] Then


Danke Alina

Ras
07.02.2001, 13:26
Hallo Alina,
ich hoffe, ich habe das jetzt richtig verstanden...
Die Prozedur kommt in das Feld Name im Unterformular nach Aktualisieren...
Im Hauptformular muss sich ein Feld 'ID' befinden, das das Mitglied eindeutig kennzeichnet...
Wenn die Verweise 'DAO' richtig gesetzt sind, dann müsste das jetzt hinhauen:

Private Sub Name_AfterUpdate()
Dim id, strname As String, db As Database, rst As Recordset
strname = Forms!Hauptformular!Unterformular![Name]
id = "SELECT * FROM Tabelle1 " & "WHERE [Name] = " & "'" & Forms!Hauptformular!Unterformular![Name] & _
"' AND [ID] = " & Forms!Hauptformular![ID]
Set db = CurrentDb()
Set rst = db.OpenRecordset(id)
If rst.RecordCount > 1 Then GoTo hinweis
Exit Sub
hinweis:
MsgBox "Es gibt bereits einen Mitspieler mit diesem Namen!", vbExclamation, "Hinweis"
Forms!Hauptformular!Unterformular.SetFocus
DoCmd.GoToRecord , , acFirst
schleife:
If strname <> Forms!Hauptformular!Unterformular![Name] Then
DoCmd.GoToRecord , , acNext
Else
Exit Sub
End If
GoTo schleife
End Sub

Ciao,
Wiesiek

Alina
07.02.2001, 14:26
Hi Ras!
Danke für deine Hilfe!
Fast genau so hab ich es gestern auch geschrieben!
Und es hat funktioniert!!!

DANKE DANKE DANKE noch mal!

Gruß
Alina :-)