Hallo Zusammen,
ich möchte gerne durch einen Button zwei werte abfragen, durch welche ein zugehöriger datensatz eindeutig bestimmt ist und dann den selben im formular ausgeben.
Leider finde ich nicht wie ich den zugehörigen datensatz öffenen kann.. bei mir wird immer der aktuell im formular geöffnete datensatz mit dem in der suche gefundenen datensatz überschrieben..
besten dank schon mal!
hier mein bisheriger code:
Private Sub cmdSearch_Click()
Dim rst As New ADODB.Recordset
Dim x As Integer
str_Project_Name = InputBox("Please enter the name of related Project")
str_Covenant = InputBox("Please enter the related Covenant")
If str_Project_Name = "" Then
End
End If
rst.Open _
"Select *" & _
"From [tblCovenants]" & _
"where [Project_Name] Like '%" & str_Project_Name & "%' And [Covenant] Like '%" & str_Covenant & "%'", _
ActiveConnection:=CurrentProject.Connection, _
CursorType:=adOpenKeyset, _
options:=adCmdTableDirect
x = rst.AbsolutePosition
DoCmd.GoToRecord , , acGoTo, x
Do Until rst.EOF
Application.Forms("frmCovenants").Controls("ID").Value = rst![ID]
Application.Forms("frmCovenants").Controls("Project_Name").Value = rst![Project_Name]
Application.Forms("frmCovenants").Controls("Covenant").Value = rst![Covenant]
Application.Forms("frmCovenants").Controls("CTA_Clause").Value = rst![CTA_Clause]
Application.Forms("frmCovenants").Controls("Review_Frequency").Value = rst![Review_Frequency]
Application.Forms("frmCovenants").Controls("Frequency").Value = rst![Frequency]
Application.Forms("frmCovenants").Controls("Last_Review").Value = rst![Last_Review]
Application.Forms("frmCovenants").Controls("Next_Review").Value = rst![Next_Review]
Application.Forms("frmCovenants").Controls("Fullfilled?").Value = rst![Fullfilled?]
rst.MoveNext
Loop
rst.Close
Set rst = Nothing
End Sub
Hallo,
in einem gebundenen Formular kannst du mit der Me.Recordset.FindFirst-Methode auf den gesuchten Datensatz springen.
ok, und wie genau würde ich das in meinen code dann einbinden?
Danke!
Hallo,
Zitatok, und wie genau würde ich das in meinen code dann einbinden?
gar nicht, der wird bei einem gebundenen Formular gar nicht mehr benötigt. Verwende als Datenherkunft für das Formular einfach die Tabelle. Suchen tust Du mit 2 Feldern mit den das Formular dann einfach gefiltert wird.
Wie heißen die Felder nach denen Du suchen willst und welcher Datentyp haben diese ?
die felder heißen: Project_Name und Covenant und sind beide vom datentyp string.
Hallo,
Button zum Filtern:
Me.Filter = "Project_Name = '" & Me.Formularfelddazu & "' And Covenant = "' & Me.Formularfelddazu &"'")
Me.FilterOn = True
Das Formular muss gebunden sein.
Wieso benötigst Du 2 Felder zur Eindeutigkeit, gibt es da keinen Primärschlüssel ?
gibt es schon, nur kennt der nutzer diesen nicht zwingend, daher ist es intuitiver ihn nach etwas suchen zu lassen was er tatsächlich wissen will.