Avatar billede RonnieODIN Praktikant
01. juni 2012 - 10:33 Der er 15 kommentarer og
1 løsning

Opdatering af data i tabel

Hej alle,

Jeg er ret ny i access.

Jeg sidder med reservedelsdatabase. Jeg har en post, der hedder lagerantal. Denne post vil jeg gerne kunne opdatere når jeg sælger eller køber en reservedel.

Jeg har to formularer og tabeller med hhv. købs- og salgsordrer.

Hvordan kan jeg få opdateret lagerantallet ved køb og salg?

Venlig hilsen
Ronnie
Avatar billede mugs Novice
01. juni 2012 - 10:50 #1
I de felter hvor du registrerer køb / salg, kan du indsætte flg. i felternes BeforeUpdate:

Me.Refresh
Avatar billede terry Ekspert
01. juni 2012 - 10:51 #2
I assume you also have a tabel containing your products and stock levels?

In the forms where you make "købs- og salgsordrer"  you need to write some code which also updates the table which contains stock levels.
Avatar billede RonnieODIN Praktikant
01. juni 2012 - 10:58 #3
Jeg har også en tabel med hver reservedel på lager, som indeholder de forskellige info for hver del på lager, deriblandt lagerbeholdningen.
Avatar billede RonnieODIN Praktikant
01. juni 2012 - 11:55 #4
Jeg har fundet dette andetsteds, men har lidt problemer med, at få det skilt ad til hvad jeg skal bruge og hvordan:

http://allenbrowne.com/AppInventory.html
Avatar billede terry Ekspert
06. juni 2012 - 18:03 #5
In the forms where you make "købs- og salgsordrer"  you need to write some code which also updates the table which contains stock levels.
Avatar billede RonnieODIN Praktikant
12. juni 2012 - 10:31 #6
Terry,

As I am quet new to Access, I have no idea what I need to write. I am trying to look at both the link above and also the code written for the Northwind example database. Neither is super helpful as I am not sure how much code I need.

Ronnie.
Avatar billede terry Ekspert
12. juni 2012 - 15:05 #7
You could use  something like this and you need to alter name of table/field as this is justan example.
ValueTouWantToApplyToStockLevel also needs to be altered to the anem of the field on the form where you have entered the "købs- og salgsordrer" quantity. And dont forget to alter sign (+/-) accordingly.


DoCmd.RunSQL "UPDATE YouStockTable SET StockLevel = StockLevel + " &  ValueTouWantToApplyToStockLevel
Avatar billede terry Ekspert
12. juni 2012 - 15:07 #8
Oops, and you obvioulsy need to include which "reservedel" you are altering stock level for.


DoCmd.RunSQL "UPDATE YouStockTable SET StockLevel = StockLevel + " &  ValueTouWantToApplyToStockLevel & " WHERE PartNumber = '" & SomePartNumber & "'"

assumeing PartNumber is a text value
Avatar billede RonnieODIN Praktikant
20. juni 2012 - 11:02 #9
Terry,

Where should I insert this code? On the button accepting the sales and purchase orders, respectively?

Ronnie
Avatar billede terry Ekspert
20. juni 2012 - 17:51 #10
I would suggest in the After insert event for both køb and salg forms.
IE after a record is entered into the appropriate table you also update your stock table
Avatar billede RonnieODIN Praktikant
21. juni 2012 - 08:18 #11
I have now written the code as an AfterInsert event. It works fine - except that the line cannot read the ID from the sparepart table. It pops up and asks for the value and regardsless what I write in this field (just to test if it works) it will update the stock for all spareparts in my list. :S

My code for purchases is:
DoCmd.RunSQL "UPDATE tblLageroversigtKundelager SET [Antal på lager] = [Antal på lager] + [Antal] WHERE [Reservedels_ID] = [Produkt]"

Where:
tblLageroversigtKundelager is my spareparts list.
Antal på lager is the actual stock.
Antal is the amount to add.
Reservedels_ID is the Primary key for the spareparts table.
Produkt is a looked up field for products in the purchase table.

It will pop up and ask me for Reservedels-ID.

Any idea of what I got wrong?

Ronnie
Avatar billede RonnieODIN Praktikant
21. juni 2012 - 09:35 #12
Strangely the problem seems to have disappeared after I cut and pasted the the line.

I would like though that the amount is not withdrawn or added until I have sent and recieved the orders respectively. Could I obtain this by moving the code from AfterInsert to OnDirty?
Avatar billede terry Ekspert
21. juni 2012 - 18:45 #13
"Strangely the problem seems to have disappeared after I cut and pasted the the line"
I dont see how the problem has gone if you havent made any alterations to the SQL.


DoCmd.RunSQL "UPDATE tblLageroversigtKundelager SET [Antal på lager] = [Antal på lager] + [Antal] WHERE [Reservedels_ID] = [Produkt]"

The reason you are being asked for Reservedels-ID is because you need to replace Reservedels-ID in th eSQL with the actual vale of Reservedels-ID. At the moment it is just text.



Something like this.

DoCmd.RunSQL "UPDATE tblLageroversigtKundelager SET [Antal på lager] = [Antal på lager] + " & [Antal] & " WHERE [Reservedels_ID] = '" & [Produkt] & "'"

Actually an idea would be to put the SQL in a string variable so that you can see what it contains before executing th eSQL


Dim sSQL  as string

sSQL = "UPDATE tblLageroversigtKundelager SET [Antal på lager] = [Antal på lager] + " & [Antal] & " WHERE [Reservedels_ID] = '" & [Produkt] & "'"

Then use
DoCmd.RunSQL sSQL
Avatar billede RonnieODIN Praktikant
26. juni 2012 - 08:51 #14
Terry,

I've made it work. :) Thank you VERY much for your help.

Please post an answer so I can give you some points.
Avatar billede terry Ekspert
26. juni 2012 - 17:58 #15
great :o)
Avatar billede terry Ekspert
27. juni 2012 - 20:04 #16
thanks
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