Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Lager

Postades av 2002-03-28 21:56:30 - Raderat konto, i forum visual basic - allmänt, Tråden har 8 Kommentarer och lästs av 429 personer

Jag håller på med ett program som skall registrera ett lager. Man skall både kunna lägga till i lagret genom inköp och tabort genom försäljning. När du registrerar ett inköp läggs datum, sort, antal kg och utbetalt in i lagertab. När du sedan skall sälja en vara så skall programet ta bort den vara som stämmer in på beställningen (sort), den varan med äldst inköpsdatum skall alltid tas bort först. Mitt program funkar utom på en punkt, företaget kan ha flera köptillfällen på samma vara och samma dag. Som det är nu så tar programet bort alla där datumet och varan matchar.
Så om jag först köper in 5 kg tomater och sedan samma dag ytterligare 5. Sedan får jag en beställning på 5kg tomater, då skall ju programet inte ta bort båda posterna.

Här följer min kod.
<code>
Set tabell = New ADODB.Recordset
Dim vikt As Integer
vikt = CInt(Text6.Text)
Dim fortsätt As Boolean
fortsätt = True
Dim datum As Date
Do While fortsätt
tabell.Open "select min(datum) from lagertab where sort = '" & Text3.Text & "'", frmMain.databas
datum = tabell(0)
tabell.Close
tabell.Open "select * from lagertab where sort = '" & Text3.Text & "' and datum = #" & datum & "#", frmMain.databas
If vikt >= tabell("kg") Then
vikt = vikt - tabell("kg")
tabell.Close
tabell.Open "delete from Lagertab where sort = '" & Text3.Text & "' and datum = #" & datum & "#", frmMain.databas
Else
tabell.Close
tabell.Open " update lagertab set kg=kg- " & vikt & " where sort = '" & Text3.Text & "' and datum = #" & datum & "#", frmMain.databas
fortsätt = False
End If
Loop
</code>
Mycket tacksam för hjälp


Svara

Sv: Lager

Postades av 2002-03-28 23:30:39 - Andreas Hillqvist

Tycker du krånglar till det. Testa att istället öppna och loppa igenom recordsetet:
<code>
Dim Vikt As Long
Dim fltKg As ADODB.Field
Dim rsLager As ADODB.Recordset

Vikt = CInt(Text6.Text)

Set rsLager = New ADODB.Recordset
rsLager.Open "SELECT *" & vbCrLf & _
"FROM lagertab" & vbCrLf & _
"WHERE sort = '" & Text3.Text & "'" & vbCrLf & _
"ORDER BY datum DESC", frmMain.databas, adOpenKeyset, adLockOptimistic
Set fltKg = rsLager = tabell("kg")
Do Until rsLager.EOF
If fltKg.Value > Vikt Then
fltKg.Value = fltKg.Value - Vikt
Vikt = 0
Exit Do
Else
Vikt = Vikt - fltKg.Value
rsLager.Delete
End If
rsLager.MoveNext
Loop
rsLager.Close

If Vikt Then
MsgBox "Det saknas " & Vikt & "kg för att fylla ordern!"
End If
</code>
Men jag skulle inte göra på ditt sätt. Skulle lagra utag som negativa värden. Så är det bara att summera.


Svara

Sv: Lager

Postades av 2002-03-29 12:15:05 - Raderat konto

Säger du att det är lättare med negativa värden så är jag intresserad av hur man gör det. Jag håller på att lära mig att databasprogramera så det finns mycket som kan göras bättre i mitt program.

I den koden du skrev funkar inte detta
<code>
Set fltKg = rsLager = tabell("kg")
</code>
Det går inte att blanda datatyperna.

Tack för att du tar dig tid.


Svara

Sv: Lager

Postades av 2002-03-29 19:48:46 - Andreas Hillqvist

Opps, slarvfel. Skall vara:
<code>
Set fltKg = rsLager("kg")
</code>
<br>
Typ Lager tabellen:<br>
<br>
Datum: Typ: St:<br>
20020101 Lampa 10<br>
20020101 Lampa 15<br>
20020102 Lampa -5<br>
20020104 Lampa -10<br>
<br>
Kör du en summa får du att det fins totalt 10 lampor. Fördelen är att du får historik. Du kan se vilka leveranser som kommit in och vilka som komit ut.


Svara

Sv: Lager

Postades av 2002-03-29 20:23:20 - Raderat konto

Ja det felet borde jag kunnat ha sett själv :).
Jag har en tabell för försäljning och inköp. Tror jag använder ditt första exempel för det är ganska likt mitt eget och jag vet vad allt gör utom en sak. Vad är vbCrLf?


Svara

Sv: Lager

Postades av 2002-03-29 20:46:44 - Raderat konto

Jag hittade något skumt. Jag har gått igenom koden och kan inte fatta varför programmet gör som det gör.

Om det i lagertab finns följande.

Datum Sort Kg
2002-03-03 KJ 5
2002-03-03 KJ 5
2002-05-05 KJ 5

Om det kommer en order på 6 Kg KJ då tar programmet bara bort den första posten, alltså så tas bara 5 Kg bort från lagret när 6 har sålts.

Har du några ideér?


Svara

Sv: Lager

Postades av 2002-03-29 23:22:57 - Andreas Hillqvist

Testa med en update. Kanske avbryter redigeringen när man stänger recordsetet.
<code>
Dim Vikt As Long
Dim fltKg As ADODB.Field
Dim rsLager As ADODB.Recordset

Vikt = CInt(Text6.Text)

Set rsLager = New ADODB.Recordset
rsLager.Open "SELECT *" & vbCrLf & _
"FROM lagertab" & vbCrLf & _
"WHERE sort = '" & Text3.Text & "'" & vbCrLf & _
"ORDER BY datum DESC", frmMain.databas, adOpenKeyset, adLockOptimistic
Set fltKg = rsLager("kg")
Do Until rsLager.EOF
If fltKg.Value > Vikt Then
fltKg.Value = fltKg.Value - Vikt
rsLager.Update
Vikt = 0
Exit Do
Else
Vikt = Vikt - fltKg.Value
rsLager.Delete
End If
rsLager.MoveNext
Loop
rsLager.Close

If Vikt Then
MsgBox "Det saknas " & Vikt & "kg för att fylla ordern!"
End If
</code>


Svara

Sv: Lager

Postades av 2002-03-30 07:41:13 - Raderat konto

Thats it. Tack!! Nu tror jag att detta skall vara sista frågan om det här.
Vad gör VbCrLf, har kollat hjälpen men jag fattar inte.


Svara

Sv: Lager

Postades av 2002-03-30 09:40:11 - Fredrik Zell

vbcrlf är carrige return line feed, eller nått sånt, den radbryter texten och placerar markören längst till vänster igen iaf.


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 644
27 953
271 710
12 117
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies