Avatar billede logiq Nybegynder
22. januar 2002 - 21:22 Der er 13 kommentarer og
2 løsninger

tabel kontra forspørgsel

Jeg sidder her og roder med nyeste udgave af en shoppingløsning der hedder VPASP. Jeg har brugt denne i to år og er meget tilfreds med den.
I det sidste år er jeg begyndt at lave en del tilvirkninger af både ASP-koden og Access-databasen.

Der var før en tabel ved navn products, som nu hedder products1 og istedet bruges en forspørgsel ved navn products. Denne forespørgsel har den fordel, at når jeg f.eks. taster priser ind, skal jeg bare taste mine indkøbspriser ind, så beregner access selv moms og avance på.

Det fungerede også fint indtil jeg gik igang med nyeste version af shopping-løsningen (ASP). Den kan ikke lide pris-feltet i min forespøgsel, af en eller anden grund.

I originalen er feltet (i tabellen) et valuta-felt, men i min forespørgsel er det et almindeligt tal.

Jeg har fået det til at fungere ved at kopiere alle data fra forespørgslen og indsætte dem i den originale medfølgende tabel. Dér virker det fint nok.

Jeg har selv løsningsforeslag til problemet, jeg aner bare ikke om det kan lade sig gøre og i så fald hvordan.

- Hvis man kunne få en tabel til at synkronisere sine data udfra en forespørgsel ville det være en mulighed.

- Kan man ændre forespørgslen således at den viser pris-feltet som et valuta-felt og stadig virke som et beregnet felt?

- kan evt lave et script i en ASP-fil der synkronisere tabellen med forespørgslen? tillæg: kan forespørgslen så være i en anden database?

Evt. andre løsningsforeslag må også gerne skrives her, for at hjælpe hjernerne på siden til at svare! :o)

På forhånd tak!
Avatar billede terry Ekspert
22. januar 2002 - 21:50 #1
You dont say WHAT the actual problem IS. Are the calculations incorrect or what?

You can use CCur() to convert your fields to a currency.

Your table with Currency fields is OK, dont chnage that. Concentrate on GETTING the data INTO the table correctly.

Not sure what you meann with "Hvis man kunne få en tabel til at synkronisere sine data udfra en forespørgsel" ???

OR "Kan man ændre forespørgslen således at den viser pris-feltet som et valuta-felt og stadig virke som et beregnet felt" ???

If you have a SELECT query (forespørgsel) which gets for example a currecny field from a TABLE then it is a currency field in the query. I think most of your problems ARE NOT the queries or tables but how you using them in your ASP!!
Avatar billede logiq Nybegynder
22. januar 2002 - 22:06 #2
The problem is that my shopping cart will not show the products when the price-field is not as currency. At least that is what I think is the problem.
I am a rookie when it comes to altering ASP, and my shopping is way too complex for me to alter. Also I get updates from the producer every now and then, so I want to keep my customizations at a minimum.

>>>"Hvis man kunne få en tabel til at synkronisere sine data udfra en forespørgsel" This question I ask because, if I could get the data from the query to show in the table, my problems would be solved....I think :o)

>>>"Kan man ændre forespørgslen således at den viser pris-feltet som et valuta-felt og stadig virke som et beregnet felt". This is what you have ansvered by CCur(), but I'm not sure how to use it. Therefore I have copy-pasted my SQL from the query, maybe you could tel me how to use it on the field named "cprice". Or maybe tell what else is wrong.

SELECT Products1.catalogID, ([ccategory] & '-' & [Subcategoryid] & '-' & [catalogID]) AS ccode, Products1.cname, Products1.cdescription, IIf(([Indkøbspris])=0,'9999999',([brutto]+[Avance])) AS cprice, ([cprice]/[brutto])-1 AS procent, Products1.Avance, (Indkøbspris*1.25) AS brutto, Products1.Indkøbspris, Products1.ccategory, IIf(([extendeddesc])='Der er ingen udvidet beskrivelse til det valgte produkt. Der arbejdes på sagen…','','shopexd.asp') AS cdescurl, Products1.Features, Products1.Produktbillede, IIf(([Produktbillede])='0','http://62.242.164.219/grafik/siden/camera.gif',[Produktbillede]) AS cimageurl, Products1.cstock, Products1.weight, Products1.mfg, Products1.pother1, Products1.pother2, Products1.pother3, Products1.Subcategoryid, Products1.RetailPrice, Products1.SpecialOffer, Products1.category, Products1.Buttonimage, Products1.cdateavailable, Products1.AllowUserText, Products1.Pother4, Products1.pother5, Products1.userid, Products1.keywords, Products1.template, IIf(([Produktbillede])='0','http://62.242.164.219/grafik/siden/camera.gif',[Produktbillede]) AS extendedimage, Products1.extendeddesc, Products1.selectlist, Products1.Level3, Products1.Level4, Products1.Level5, Products1.MinimumQuantity, Products1.supplierid, Products1.crossselling, IIf(([Indkøbspris])=0,-1,0) AS hide, Products1.productmatch, Products1.customermatch, Products1.orderattachment, Products1.orderdownload, Products1.groupfordiscount, Products1.clanguage
FROM Products1;
Avatar billede terry Ekspert
22. januar 2002 - 22:14 #3
Are brutto and avance BOTH currency? It also looks as though ther are too many closing ) !!!
,([brutto]+[Avance])) AS cprice,

But anyway I would try
,CCur([brutto]+[Avance]) AS cprice,
Avatar billede terry Ekspert
22. januar 2002 - 22:15 #4
and now I am off to bed, hope it helps if not I will take a look tomorrow :o)
22. januar 2002 - 22:17 #5
Hej Logiq

Der er flere ting i det:

Du kan godt ændre lave din forespørgsel således at data vises som valuta. Højreklik i kolonnen i designvisning og vælg egenskaber. Her kan du vælge format. Dette er dog ofte ikke nok, hvorfor du også kan gennemtvinge formattet således:
NytFelt: Format(Pris;"Currency")

Din løsning med at synkronisere forespørgslen med en tabel kan jo bare løses ved at lave en tilføjelsesforespørgsel, som indsætter alle posterne i forespørslen i tabellen (husk dog lige at slette tabellen inden du kører tilføjelsesforespørgslen)

Giver dette mening?

/Thomas
Avatar billede logiq Nybegynder
22. januar 2002 - 22:35 #6
Jeg prøver lige at lave ændringerne fra terry og digselv mht. valuta.

mht. synkronisering må du uddybe lidt hvordan man opretter en sådan. Det er jeg meget interesseret i at lære
Avatar billede logiq Nybegynder
22. januar 2002 - 22:42 #7
Goodnight Terry and thank you for now!
Avatar billede logiq Nybegynder
22. januar 2002 - 23:03 #8
>>>thomas

Jeg har nu prøvet både dit foreslag mht. valuta og det virker fint, men mit shopping-car vil stadig ikke "æde" den.

Fejlen kan måske hjælpe:

Type mismatch: 'formatnumber'
/shopping2/shop$db.asp, line 1042

...og her er så et udsnit af filen der volder problemerne. Jeg vil som sagt helst have at jeg får det til at virke ved ændring i databasen fremfor i ASP-filerne.


Function ShopFormatCurrency (amount, decimalpoint)
If getconfig("XCurrencySymbol")="" then
  shopformatcurrency=formatCurrency (amount, decimalpoint)
else
  shopformatcurrency=getconfig("XCurrencySymbol") & " " & formatNumber (amount, decimalpoint)
end if 
end function
Function LanguageGet
if Getsess("Language")="" then
    Setsess "Language",getconfig("xlanguage")
end if
languageGet=Getsess("Language")
end function


linie 1042 er den der hedder:
shopformatcurrency=getconfig("XCurrencySymbol") & " " & formatNumber (amount, decimalpoint)

ville du hjælpe mig med den dér tilføjelsesforespørgsel?
Avatar billede logiq Nybegynder
22. januar 2002 - 23:05 #9
mht til synkronisering kan man ikke "bare" få resultatet af feltet "cprice" i forespørgsel "products" til at stå i samme felt i tabellen products1?
22. januar 2002 - 23:13 #10
ja, gerne :o)

Du skal have en tabel, som har de samme felter som forespørgslen, blot skal pris m.m. være i valutaformat.
Du skal så lave 2 forespørgsler; En sletteforespørgsel og en tilføjelsesforespørgsel.

Sletteforespørgslen skal have en SQL a la dette:
Delete From NyTabel;

Tilføjelsesforespørgslen skal se således ud:
INSERT INTO NyTabel
SELECT DinForespørgsel.*
FROM DinForespørgsel;

Når disse 2 forespørgsler er kørt umiddelbart efter hinanden vil din forespørgsel være 'synkroniseret' med tabellen.

Kan du ikke lige skrive din email, da jeg skal klikke et par hundrede gange hver gang for at få mit svar gennem!! Det er efter at designet er lavet om, så kan jeg stort set ikke få et eneste svar gennem - øv :o(
Avatar billede logiq Nybegynder
22. januar 2002 - 23:42 #11
jo den er ulrich@logiq.dk

Jeg har lige prøvet det og det virker, men med nogle fejl:

Microst Access angav 48 felt(er) til Null pga. typekonverteringsfejl...

...men det er vel pga. af nogle af felterne ikke er ens....jeg tror bl.a. at nogle af felterne fra forespørgslen/tabellen er hhv. notat og tekst.

Nåh, mit næste spørgsmål er så er der en måde at automatisere denne synkronisering?
Avatar billede logiq Nybegynder
22. januar 2002 - 23:42 #12
siden her fungere ellers fint hos mig, men den er blevet længere om at sende svar/kommentarer
Avatar billede logiq Nybegynder
23. januar 2002 - 00:55 #13
Jeg har fundet og rettet fejlen med de 48 felter typekonverteringsfejl.

Har du ellers nogle gode forslag til at gå igang med at lære ASP og/eller SQL Vbasic for det hører vel lidt sammen alt sammen. Jeg kunne godt tænke mig at lære det, udover de små tilrettelser o.lign. jeg selv har kunne hitte ud af?

Mht til automatisering har jeg lavet en makro, men er der en måde hvorpå jeg automatisere dette på. Med makroen skal jeg stadig bekræfte 4-5 gange at jeg er sikker på at jeg vil det jeg vil.

Ellers tak for hjælpen, det virker nu, og det er jo dejligt.
Avatar billede logiq Nybegynder
27. januar 2002 - 17:43 #15
Tak for hjælpen til Jer begge. Jeg har givet Terry 25 point, for han hjalp jo også til, og især med de sidste links. Thank you Terry!

Og tak til Thomas, det kører bare som smurt!
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