Avatar billede tni Juniormester
05. september 2003 - 08:25 Der er 3 kommentarer og
2 løsninger

Kør forspørgsel som kontrol inden opdatering.

Når jeg indtaster "123" i txtET skal der køres en den forspørgsel som jeg har klippet ind.
Hvis den giver 2 må man ikke indtaste det tal for det er slettet et andet sted.

Det som jeg mangler er hvordan jeg får det ind i min Sub


Private Sub txtET_BeforeUpdate(Cancel As Integer)

If denne SQL giver 2 =SELECT Count(TBL_DL.ET) AS AntalOfET
FROM (TBL_KUNDER INNER JOIN TBL_Installationer ON TBL_KUNDER.ID = TBL_Installationer.Kunde_ID) INNER JOIN TBL_DL ON TBL_Installationer.InstallationID = TBL_DL.Inst_ID
GROUP BY TBL_KUNDER.ID
HAVING (((Count(TBL_DL.ET))>1) AND ((TBL_KUNDER.ID)=[Formularer]![frmKundeOprettelse]![ID]));

Then

Msgbox "Det går ikke"

end if

End Sub

/TNI
05. september 2003 - 08:36 #1
Der er flere måder at gøre dette på, men den nemmeste (og mest forståelige) er at gemme din SQL som en forespørgsel og derfter bruge DFirst til at spørge på værdien:

Hvis din forespørgsel blot hedder qry, skal koden se således ud:

IF DFirst("AntalOfET", "qry") = 2 then
  Msgbox "Den går ikke!"
endif
Avatar billede terry Ekspert
05. september 2003 - 08:37 #2
tni> Make a query with the SQL and then use Dcount

If Dcount("*", "TheQuery") = 2 Then ....
05. september 2003 - 08:38 #3
Alternativt kan du åbne et recordset baseret på SQL'en og derefter spørge på værdien herigennem. Men det kræver flere linier kode, end ovenstående eks.
Det er som regel også rart at have SQL'en i en forespørgsel, da man bedre kan foretage ændringer i den frem for i koden, hvor linerne er ombrudt osv.

Terry-> tni tæller allerede antallet i SQL'en, så DCount vil altid kun give 1 ;o)
Avatar billede terry Ekspert
05. september 2003 - 08:44 #4
Yes I see that now Thomas, I was thinking more in the lines of making a new query. Also I have a feeling that the value entered has something to do with the result tni is expecting and as the value isnt yet written to th dB then he has a problem.
Avatar billede tni Juniormester
05. september 2003 - 08:57 #5
Den var ikke så svær som jeg først troede.

Jeg brugte "If DLookup("[ET]", "DobET") > 2 Then" til at virke.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester