Avatar billede l_otto Nybegynder
04. maj 2004 - 13:24 Der er 25 kommentarer og
1 løsning

hjælp til udregning

jeg kan ikke få denne vb tila t virke som den skal ..

Her sammenligner jeg tabellerne 4 og 6 og den der er billigt bliver insat i tabel 7. godt det virker.

Nu vil jeg gerne have at den skal sige:

hvis prisen i tabel4 er > end prisen i tabel 6 x 1.02%
hvis priser i table4 er < end prisen i tabel 6 træk da 100 fra prisen i tabel6.

og det resultat skal indsættes i tabel7. men det vil den ikke...

hjælp håber I forstår


Public Function OpdaterTabel7()
    Dim SQL As String
    Dim Antal As Long
    Dim cn As ADODB.Connection
    Set cn = CurrentProject.Connection
    SQL = "INSERT INTO tabel7 (levnavn, pris, varenummer, DescShort) SELECT t1.levnavn, t1.pris, t1.varenummer, t1.DescShort "
    SQL = SQL & "FROM (SELECT levnavn, pris, varenummer, DescShort FROM tabel4 "
    SQL = SQL & "UNION ALL SELECT levnavn, pris, varenummer, DescShort FROM tabel6) "
    SQL = SQL & "as t1, "
    SQL = SQL & "(SELECT min(pris) as mpris, varenummer "
    SQL = SQL & "FROM (SELECT pris, varenummer FROM tabel4 "
    SQL = SQL & "UNION ALL SELECT pris, varenummer FROM tabel6 "
    SQL = SQL & ") GROUP BY varenummer) as t2 "
    SQL = SQL & "WHERE t1.pris = t2.mpris AND t1.varenummer = t2.varenummer ORDER BY t1.varenummer;"

    cn.Execute SQL, Antal
   
    'opdater efter reglen: hvis prisen i tabel4 er > end prisen i tabel6 gang prisen i tabel4 med 1.02
    SQL = "UPDATE tabel4 INNER JOIN tabel6 ON tabel4.varenummer = tabel6.varenummer SET tabel4.pris = [tabel4].[pris]*1.02 " & _
        "WHERE tabel4.pris>[tabel6].[pris]"
    cn.Execute SQL
   
    'opdater efter reglen priser i table4 er < end prisen i tabel 6 træk da 100 fra prisen i tabel6.
    SQL = "UPDATE tabel4 INNER JOIN tabel6 ON tabel4.varenummer = tabel6.varenummer SET tabel6.pris = [tabel6].[pris]-100 " & _
        "WHERE tabel6.pris>=[tabel4].[pris]"
    cn.Execute SQL
   
    MsgBox Antal & " poster blev tilføjet!", vbExclamation, "Done!"
End Function
Avatar billede hekla Nybegynder
04. maj 2004 - 18:32 #1
Hvis du skal tilføje til tabel7, skal du vel bruge en sætning a la:

INSERT INTO tabel7 (pris,...) SELECT tabel4.pris,... FROM... WHERE...
Avatar billede terry Ekspert
04. maj 2004 - 18:32 #2
I think the reason why you arent getting any responce is the fact that there is quite a bit going on in the code and without an understanding of your database it would take some time just to find out exactly how things are put together.

Am I right in saying that you have an SQL server as the backend?
Avatar billede l_otto Nybegynder
04. maj 2004 - 18:56 #3
hekla: ja det har du ret i... men det gør den også:

SQL = "INSERT INTO tabel7

det  der er svært er at den skal sammenligne table4 og tabel6 og inden den så indsætte data i tabel7 skal den lave udregningen.

håber du forstår..
Avatar billede l_otto Nybegynder
04. maj 2004 - 18:58 #4
terry: nej det er bare en alm. access 2000 det kører på, og det skal foregår lokalt da der er tale om over 10.000 varenumre der skal sammenlignes.

håber du kan hjælpe...
Avatar billede terry Ekspert
04. maj 2004 - 19:40 #5
if you can send me your dB then I have a better chance seeing what you are trying to do.
eksperten@NOSPAMsanthell.dk
remove NOSPAM
Avatar billede l_otto Nybegynder
04. maj 2004 - 19:41 #6
jeg sender med det samme
Avatar billede terry Ekspert
04. maj 2004 - 19:49 #7
received
Avatar billede l_otto Nybegynder
04. maj 2004 - 19:50 #8
good luck
Avatar billede terry Ekspert
04. maj 2004 - 21:19 #9
I have sent you a mail, need more information before I can continue!
Avatar billede terry Ekspert
05. maj 2004 - 10:17 #10
I dont know if you have answered my mail, if so I will take a look when I get home from work.
Avatar billede l_otto Nybegynder
05. maj 2004 - 10:19 #11
det har jeg :-)

lyder godt...
Avatar billede l_otto Nybegynder
05. maj 2004 - 21:38 #12
kom lige med et svar Terry :-)
Avatar billede terry Ekspert
06. maj 2004 - 11:56 #13
Is this what you wanted?
Avatar billede terry Ekspert
06. maj 2004 - 12:00 #14
The solution I made was a query joining table4 and table6 on varenummer and then using iif to find the lowest price and either * with 1.02 or subtracting 100.
Then an insert query to append to table7
Avatar billede terry Ekspert
07. maj 2004 - 14:41 #15
I think you need to accept Peter!
Avatar billede terry Ekspert
14. maj 2004 - 17:57 #16
peter, we are up and running again!
Avatar billede terry Ekspert
16. maj 2004 - 17:39 #17
.
Avatar billede l_otto Nybegynder
16. maj 2004 - 21:18 #18
ja vi er online igen er du online nu ?
Avatar billede l_otto Nybegynder
17. maj 2004 - 11:34 #19
hej Terry

are you there ? :-)

P
Avatar billede terry Ekspert
17. maj 2004 - 18:59 #20
yes, I'll take a look at your mail asp
Avatar billede l_otto Nybegynder
17. maj 2004 - 21:07 #21
lyder rigtig godt.. jeg skal mest bruge den fungtion så den runder op med tallene så der ikke kommer til at stå 15.125,3215
Avatar billede terry Ekspert
17. maj 2004 - 21:24 #22
You can use Round(15.125,3215)
or
Round(15.125,3215,2) (two decimals)
Avatar billede l_otto Nybegynder
17. maj 2004 - 21:30 #23
but i only want 15.125

no decimals
Avatar billede l_otto Nybegynder
17. maj 2004 - 21:34 #24
what is the code ?
Avatar billede terry Ekspert
17. maj 2004 - 21:36 #25
I have sent a mail to you. When I get an answer to question 2 then I can make the alterations in the dB you sent and send it back.

It will first be tomorrow as I am off for the evening.
Avatar billede l_otto Nybegynder
18. maj 2004 - 12:01 #26
hey I sent you two new mails, and I/we apriciate that you can help us... :-)

hope you understand what I have written in the email.

Peter
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