Avatar billede pemaje Nybegynder
20. november 2007 - 12:09 Der er 2 kommentarer og
1 løsning

If, then else med update og insert samt loop

Jeg har bøvlet noget med at få nedenstående til at virke.

Jeg importerer 3 filer fra min håndscanner ind i ACCESS i tabellerne S_VARER, S_LOKATIONER, S_STREGKODER. posterne i disse skal så holdes op imod en eksisterende forespørgelse LOKATION_FS.
Lad os f.eks tage S_VARER.
Hvis LAGERNUMMER og LOKATION er ens i S_VARER og LOKATION_FS så skal den eksisterende post opdateres. Hvis ikke, så skal posten indsættes i tabellen T_VARERFEJL.

Det samme gælder nogenlunde for de to andre, dog med visse forskelle, men hvis nogen kan guide mig i den rigtige retning med den ene, så finder jeg nok selv ud af resten.

Foreløbig har jeg følgende, hvor UPDATE og INSERT virker alene uden If sætningen. Kan nogen hjælpe?:

If vbYes = MsgBox("OPDATER FRA TERMINALEN?", vbCritical + vbYesNo, "OPDATER") Then

Dim db As Recordset
Set rs = CurrentDb.OpenRecordset("S_VARER")

rs.MoveFirst
Do Until rs.EOF
If S_VARER.LAGERNUMMER = LOKATION_FS.LAGERNUMMER Then

CurrentDb.Execute ("UPDATE LOKATION_FS INNER JOIN S_VARER ON (LOKATION_FS.LOKATION = S_VARER.LOKATION) SET LOKATION_FS.BEHOLDNING = LOKATION_FS.BEHOLDNING+S_VARER.ANTAL")

Else

CurrentDb.Execute ("INSERT INTO T_VARERFEJL (LAGERNUMMER, TILLOKATION, ANTAL, NOTE) SELECT LAGERNUMMER, LOKATION AS TILLOKATION, ANTAL, NOTE FROM S_VARER")

End If
rs.MoveNext
Loop
rs.Close
Set rs = Nothing

MsgBox "Opdatering foretaget. Husk at der kan være VARERFEJL der skal behandles!"
Else
MsgBox "Opdatering afbrudt!"
End If
Avatar billede terry Ekspert
20. november 2007 - 18:19 #1
What error do you get?

Your welocme to send the dB to me if you like, its easier to see the problem.

ekspertenATsanthell.dk
AT = @
Avatar billede fdata Forsker
20. november 2007 - 18:51 #2
Du løber S_VARER igennem via recordsettet rs. Burde du så ikke benytte:
  If rs.fields("LAGERNUMMER") = LOKATION_FS.LAGERNUMMER Then
(... og hvad er værdien af LOKATION_FS.LAGERNUMMER egentlig i denne situation?)
Skal du ikke løbe dine to joinede tabeller igennem?
Avatar billede terry Ekspert
20. november 2007 - 21:13 #3
Didnt understand the code so have changed it to two queries which I hope do whats required.
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