Avatar billede vb-wanna-b Nybegynder
20. oktober 2003 - 12:06 Der er 40 kommentarer og
1 løsning

Compare af felter

Jeg skal bruge til hilfe..
Jeg vil gerne lave en procedure der ved exit gør følgende
Sammenligner der der bliver tastet i felt1.tbl1 med felt1.tbl2 hvis der kan findes et match er det fint, ellers skal der poppe en Msgbox "findes ikke" frem. felt1.tbl skal herefter cleares for den aktuelle post. Og man kan derefter førsøge igen. Null er tilladt.
min kode giver et typemismatch svar..så jeg er skævt på koden igen...igen...hehe..men idéen har jeg da..
(speciel note til Henrik....dennegang kan jeg ikke komme fornuftigt igang med koden, da alle mine "forslag kikser..så der skal ikke deles med mig selv i porten denne gang)
Avatar billede vb-wanna-b Nybegynder
20. oktober 2003 - 12:07 #1
(hehe)
Avatar billede vb-wanna-b Nybegynder
20. oktober 2003 - 12:33 #2
well næsten..jeg har lavet et sql træk der laver comparen..og det er den jeg ikke kan få til at spille i en procedure..
Select Distinct IT_tilmeld.bruger_init
FROM TBL_bruger RIGHT JOIN IT_tilmeld On TBL_bruger.bruger_init=IT_tilmeld.bruger_init
WHERE TBL_bruger.bruger_init = IT_tilmeld.bruger_init
Avatar billede henrik13 Nybegynder
20. oktober 2003 - 16:54 #3
I hændelser for formularen går du i Ved lukning.
øåØåDoCmd.Setwarnings False
Dim sSQL As String

sSQL = Select Distinct IT_tilmeld.bruger_init
FROM TBL_bruger RIGHT JOIN IT_tilmeld On TBL_bruger.bruger_init=IT_tilmeld.bruger_init
WHERE TBL_bruger.bruger_init = IT_tilmeld.bruger_init;
Docmd.SetWarnings True
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 08:51 #4
Den laver compile fejl.. Jeg har samme problem med den jeg selv har lavet...det er sql sætningen den brokker sig over - egentligt underligt for når jeg køre den gennem en query er der ingen fejl. hændelsesproceduren brokker sig over ; men ok..hvis det er lige som det var med C, kan man jo ikke altid regne med det er HELT som den påstår
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 08:52 #5
tilføjelse...hvis jeg smider sætningen i " " er det FROM...ordet FROM den tilter over....(hvem var det der påstod programmering var sjovt.)aaargh
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 09:48 #6
Har du husket at rette sidste tegn, En SQL skal altid afsluttes med et semikolon.
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 09:54 #7
ja...den vil ikke acceptere simicolon...hvilket undrer mig....jeg har smidt hele sql sætningen i EN lang linie, så compiler den fint...underligt...det skal man nok ikke tænke over...jeg tester den lige
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 10:39 #8
den acceptere øjensynligt at jeg har sql query som en sætning som nedenstående
Private Sub bruger_init_Exit(Cancel As Integer)

DoCmd.SetWarnings False
Dim sSQL As String

    sSQL = "Select Distinct IT_tilmeld.bruger_init FROM TBL_bruger RIGHT JOIN IT_tilmeld On TBL_bruger.bruger_init=IT_tilmeld.bruger_init WHERE TBL_bruger.bruger_init = IT_tilmeld.bruger_init"
    If sSQL = False Then GoTo ErrMsg
    On Error GoTo ErrMsg
DoCmd.SetWarnings True
   
    Exit Sub
ErrMsg:
    MsgBox "No match"
    Resume Next
End Sub

Det sidste jeg mangler at ploppe på er så et check om der der blev tastet i It_tilmeld.bruger_init findes i TBL_bruger.bruger_init. Mener jeg læste at return værdien man får er true/false, men IF sætningen funger ikke så chancen for jeg tager fejl er jo åbenlys
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 10:41 #9
nårh ja... der skal laves en undo af det der blev tastet ind hvis der ikke er et match
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 10:42 #10
Me!bruger_init.Undo
regner jeg nu med virker her
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 10:52 #11
pænt sikker på det er IF sætningen den er gal med...
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 10:54 #12
Så læg if sætningen her, så skal jeg kikke på den
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 10:58 #13
har prøvet nogle stykker... den skal lave et check på hvis der ikke returneres en værdi fra TBL_bruger.bruger_init...
If sSQL = " " Then GoTo ErrMsg
If sSql = 0 Then GoTo ErrMsg (den giver typemismatch...for det er jo ikke tal..still..den er prøvet...
If sSql = false Then..........
If sSql not..... der laver den om på sætningen med det samme og skriver If not sSql..så den har jeg lidt opgivet
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 10:58 #14
I 10:39 Slår du advarsler til, men hvor har du slået dem fra.
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 11:00 #15
flere steder faktisk..(hvis det er tilladt...)
DoCmd.SetWarnings False
Dim sSQL As String

    sSQL = "Select Distinct IT_tilmeld.bruger_init FROM TBL_bruger RIGHT JOIN IT_tilmeld On TBL_bruger.bruger_init=IT_tilmeld.bruger_init WHERE TBL_bruger.bruger_init = IT_tilmeld.bruger_init"
    If sSQL = " " Then GoTo ErrMsg
    On Error GoTo ErrMsg
    DoCmd.SetWarnings True
    Exit Sub
ErrMsg:
    DoCmd.SetWarnings True
    Me!bruger_init.Undo
    MsgBox "No match"
    Resume Next

End Sub
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 11:00 #16
hov...kun et sted slå jeg dem til...
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 11:01 #17
I 10:39 Der skal du slå advarsler til inden if.  ellers ser du jo ikke fejlen.
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 11:01 #18
fra..mener jeg
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 11:02 #19
så der står
DoCmd.SetWarnings True
If sSQL = " " Then GoTo ErrMsg
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 11:04 #20
Du mangler exit if eller end if eller begge
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 11:08 #21
If sSQL = " " Then GoTo ErrMsg
    On Error GoTo ErrMsg
    DoCmd.SetWarnings True
End if
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 11:10 #22
Du havner i "On Error GoTo ErrMsg" Derfor får du ikke at vide End if mangler. Eller fløt  DoCmd.SetWarnings True
forand if sætningen
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 11:11 #23
Den compiler med fejlen
End If whithout Block If ??
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 11:41 #24
If sSQL = " " Then GoTo ErrMsg
    On Error GoTo ErrMsg
    DoCmd.SetWarnings True
End if  'Det er denne end if du mangler.
End sub
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 11:44 #25
nix... det har jeg forsøgt...
skal jeg paste koden ind ingen..som den ser ud nu?
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 11:46 #26
Ja
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 11:47 #27
Private Sub bruger_init_Exit(Cancel As Integer)

DoCmd.SetWarnings False
Dim sSQL As String
    test = Null
    sSQL = "Select Distinct IT_tilmeld.bruger_init FROM TBL_bruger RIGHT JOIN IT_tilmeld On TBL_bruger.bruger_init=IT_tilmeld.bruger_init WHERE TBL_bruger.bruger_init = IT_tilmeld.bruger_init"
    DoCmd.SetWarnings True
    If sSQL = test Then GoTo ErrMsg
        DoCmd.SetWarnings True
    End If
    End Sub
ErrMsg:
    DoCmd.SetWarnings True
    Me!bruger_init.Undo
    MsgBox "No match"
    Resume Next

End Sub
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 11:52 #28
jeg sætter lige point tallet op... du skal klart ha flere point for den hjælp her...
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 12:31 #29
Jeg får det ud af det, at du tester i if sætningen om dataerne er = null, er de det skal de gå til errmsg: Men hvad skal der ellers ske
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 12:33 #30
Har du iøvrigt erklæret din DAO.
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 12:33 #31
hvis GoTo flyttes et hak ned..compiler den fint...
Hvis data er null skal den undo det der blev tastet i det aktuelle felt i formularen.
hvis ikke det er null, skulle det gerne betyde at brugeren ER oprettet i TBL_bruger og så bare fortsætte...det er for at forhindre at man taster noget ind der ikke findes.. der bliver udfyldt nogle felter auto, hvis brugeren findes...og de skulle gerne udfyldes hvergang, så en bruger skal kunne findes ud fra det der tastes i bruger_init
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 12:34 #32
det du kan se, er det der er skrevet..så... det har jeg nok ikke...
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 12:39 #33
Gå i et modul
Gå i Tools
Gå i refarancer
Vælg højeste DAO jeg kører Dao 3,6 men lavere kan udemærket bruges.
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 12:42 #34
der er en Active X Data Objects 2.1 lib
OLE Automation
Ms Acess 9.0 Object lib
VB for applications
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 12:51 #35
Den hedder:
Microsoft DAO 3,6 objekt library
og den skal du ind og krydse af.
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 12:53 #36
ok...den er på nu....ingen forskel dog
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 12:56 #37
Tak for poient.
Har du genstarted access.
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 12:59 #38
Det har jeg lige gjort... men jeg kan stadig få lov til at taste noget ind der ikke findes i den anden tabel
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 13:08 #39
Ok. Det er ganske vist et tillægs spørgsmål, men det er din trækning af relationer den er galt med, er du intereseret i noget matriale om det så læg din E-mail adresse. Jeg kan også prøve at finde den konkrete side på internetted.
Avatar billede vb-wanna-b Nybegynder
21. oktober 2003 - 13:10 #40
Det tror jeg også..det er ihvertfald den jeg kigger på....
min adr er bladerunner@fiction.dk
Avatar billede henrik13 Nybegynder
21. oktober 2003 - 13:11 #41
Her adressen på internetted:
http://www.hedeskov.dk/netpublikationer/udv-database/kap2/kapitel2.htm
Men den er tung, og det er kun det nederste du skal bruge.
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