webForumDet fria alternativet

Formulär med händelse

Databaser & SQLur Databashanterare & SQL

7 svar · 210 visningar · startad av Insider

Medlem sedan jan. 2000978 inlägg
Frågan#1

Jag har ett formulär med ett fält.

När man skrivit in ett värde i fältet ska det ske en kontroll om det värdet finns i en tabell. Om inte så ska det komma upp ett meddelande.

Hur gör jag?
Ska man använda kod-verktyget?

Medlem sedan dec. 20003 887 inlägg
#2

Ta först fram egenskaperna för fältet (F4). Under fliken Events/Händelser markerar du sedan After Update/Efter uppdatering (?), klicka på den lilla knappen med de tre punkterna till höger och välj Code Builder / Kodverktyget (?). Nu är det bara att knappra in lite kod för det du vill göra.

Kan du inte VBA, så är det bara att återkomma :)

Medlem sedan jan. 2000978 inlägg
#3

Nej, jag fattar nada när det gäller VBA till Access. VB kan jag ju men det kan jag inte använda.

Medlem sedan jan. 2000978 inlägg
#4

Kör man ADO som vanligt, precis som med VB.6???

Medlem sedan jan. 2000978 inlägg
#5

Eller DAO?

Medlem sedan dec. 20003 887 inlägg
#6

Du kan använda dig av ADO eller DAO utan problem, så länge det finns med i objektreferensen.

Så här skulle det teoretiskt kunna se ut:

Private Sub [i]namnpåfältet[/i]_AfterUpdate()
  Dim strSQL As String
  Dim objRS As New ADODB.RecordSet
  
  strSQL = "SELECT [i]kolumnnamn[/i] FROM [i]tabellnamn[/i] WHERE [i]kolumnnamn[/i] = '" & Me.[i]namnpåfältet[/i] & "';"
  Set objRS = CurrentProject.Connection.Execute (strSQL, lngResult, adExecuteNoRecords)

  If objRS.EOF Then
    [blue]'Inga poster hittades av frågan alltså finns inte värdet...[/blue]
    MsgBox "Värdet finns inte.", vbExclamation
    Me.[i]namnpåfältet[/i].SetFocus
  End If
End Sub

red. Slarvade i koden...

Medlem sedan jan. 2000978 inlägg
#7

Tackar!

Men det hänger upp sig på den här raden:

Set objRS = CurrentProject.Connection.Execute (strSQL, lngResult, adExecuteNoRecords)

Ändrade till:

Set objRS = CurrentProject.Connection.Execute (strSQL)

Då funkade det.

Blir det bra så?

Medlem sedan dec. 20003 887 inlägg
#8

Jodå. Ytterligare en miss från min sida som jag glömde redigera :r

Set objRS = CurrentProject.Connection.Execute (strSQL, , adCmdText)

Det hade jag tänkt ändra till, men minnet är lite upp och ner ;)

131 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)