Avatar billede tupolev Nybegynder
15. maj 2006 - 16:42 Der er 19 kommentarer og
1 løsning

simpel udregning med linket excel ark.

Jeg sidder med en skoleopgave og skal lave en metode til udregning af nogle produkter. Jeg har oprettet nogle varer i et excel regneark med produkter lodret og størrelser/priser vandret. I et andet regnark har jeg opstillet nogle data for nogle forskellige projekter som skal bruges til selv udregningen. ex længde dybde ect. Jeg mengler nu et modul der hvor men kan vælge et projekt, et produkt og at den herefter regner en pris ud på baggrund af de data der står i
Avatar billede mugs Novice
15. maj 2006 - 16:46 #1
Jeg tror du har bedre mulighed for svar i Excel kategorien.

Men hvis du har en Access db kan du importere (eller sammenkæde) dine ark til Access oprette en relation mellem tabellerne og lave din prisberegning i en forespørgsel.
Avatar billede Slettet bruger
16. maj 2006 - 01:10 #2
Private Sub DataImport_Click()
Dim a As String
On Error GoTo err_dataimport
Me.DataImport.HyperlinkAddress = LaunchCD(Me)
Me.Tekstfelt = Me.DataImport.HyperlinkAddress 'Dette tekstfelt viser stien
a = Me.Tekstfelt 'Du skal oprette et tekstfelt, som hedder tekstfelt (det må godt være skjult)
DoCmd.TransferSpreadsheet acImport, 0, "tblTemp", a, True, ""
DoCmd.SetWarnings False

Her kan du så køre dine forespørgsler så du får flyttet data og slettet tblTemp.

DoCmd.SetWarnings True
MsgBox "Følgende data er importeret"
err_dataimport:
Exit Sub
End Sub

Tilhørende modul:

Option Compare Database
Option Explicit
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
"GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Private Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
Flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Function LaunchCD(strform As Form) As String
Dim OpenFile As OPENFILENAME
Dim lReturn As Long
Dim sFilter As String
OpenFile.lStructSize = Len(OpenFile)
OpenFile.hwndOwner = strform.hwnd
sFilter = "All Files (*.*)" & Chr(0) & "*.*" & Chr(0) & _
"JPG Files (*.JPG)" & Chr(0) & "*.JPG" & Chr(0)
OpenFile.lpstrFilter = sFilter
OpenFile.nFilterIndex = 1
OpenFile.lpstrFile = String(257, 0)
OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
OpenFile.lpstrFileTitle = OpenFile.lpstrFile
OpenFile.nMaxFileTitle = OpenFile.nMaxFile
OpenFile.lpstrInitialDir = "C:\Billede"
OpenFile.lpstrTitle = "Vælg en fil og tryk på Åbn."
OpenFile.Flags = 0
lReturn = GetOpenFileName(OpenFile)
If lReturn = 0 Then
MsgBox "Manglende fil!", vbInformation, _
"Du har ikke valgt en fil fra Stifinderen."
Else
LaunchCD = Trim(OpenFile.lpstrFile)
End If
End Function

Denne lange smøre skulle virker upåklageligt for mig. Du for mulighed for ved hjælp af stifinderen at udpege en excelfil og så flytter den dataerne (måske virker det kun for ark1) ind i en fil, som den kalder tblTemp. Herfra kører du de en tilføjelsesforespørgsel, så dataerne, kommer ind i din tabel. Så laver du samme procedure for det andet regneark og herefter kan du lave forespørgsler, som gør udregningerne for dig!~)
Avatar billede mugs Novice
16. maj 2006 - 05:12 #3
Lidt mere simpel:

Dim VARa As String
VARa = InputBox(Prompt:="Indtast stien til Excel-filen", Title:="Importer Excel", Default:="C:\")
DoCmd.TransferSpreadsheet acImport, 0, "Importtabel", VARa, True, ""
Avatar billede Slettet bruger
16. maj 2006 - 07:55 #4
Der er en der er tidligt oppe (i alle henseender!~)
Avatar billede Slettet bruger
16. maj 2006 - 07:56 #5
mugs>Når det nu er hentning af data fra Excel, hvad siger du så til http://www.eksperten.dk/spm/709411
Avatar billede tupolev Nybegynder
16. maj 2006 - 09:57 #6
Jeg må indrømme at det nok lyder fint alt sammen, men det er egentlig ikke linke til excel filen der er problemet men udregningen. Jeg prøve lige at stille et ekspemel op

Jeg har nogle produkter A B C og D

De har nogle priser alt efter størrelser

        A    B    C    D
0-10    10    30    40    50
11-20  15    32    50    55
21-30  40    38    60    70
31-40  50    36    70  100

Jeg skal lave et system hvor ne bruger kan indtaste produkt type og antal
dvs. produkt B 5m i størrelse 21-30. Det skulle gerne give 5*38= 190

Jeg havde håbet på at det kunne lave med et flot dialogboks.
Avatar billede Slettet bruger
16. maj 2006 - 10:17 #7
Du laver en tabel, med felterne:

ProduktId (autogenereret)
ProduktNavn
Størrelse
Pris

Så går du igang med indtastningen:

1; A; 0-10; 10
2; A; 11-20; 15
3; A; 21-30; 40
...
16; D; 31-40; 100

Så laver du en formular, med et felt, som hedder produkt, et som hedder størrelse, et som hedder længde, et som hedder pris og et sidste som hedder Ialt.

I denne formular går du i egenskaber og i feltet postkilde. Så trykker du på de 3 prikker og vælger din tabel.

Så dobbeltklikker du på felterne i tabellen og under produkt skriver du i kriteriet: forms!DinFormular!produkt og i størrelse: forms!DinFormular!størrelse og så har du feltet pris...

fortsættelse følger..
Avatar billede Slettet bruger
16. maj 2006 - 10:37 #8
Tilbage til din formular..
Felterne produkt og størrelse og længde skal være ubundne felter, men feltet pris skal have pris som kilde.

Så går du ind på egenskaber for felterne produkt og størrelse, går ned i EfterOpdateringsfeltet og trykker på de 3 prikker. Vælg kodegenerator og skriv me.requery

I feltet ialt skriver du under kilde:
=[produkt]*[størrelse]*[pris]*[længde]
og under format skriver du:
General Number

Jeg kan ikke lige overskue om det hele er der, men ellers så siger du lige til!~)
Avatar billede tupolev Nybegynder
16. maj 2006 - 11:28 #9
Jeg ved at jeg nok presser den lidt, men var det muligt at der var en det ville lave et eksempel og sende det til mig. Jeg kan ikke få det til at virke 100% og det er opstået et ekstra problem da system også gerne skal kunne vælge en standart størrelse. Dvs man vælger en standart løsning og produkt type og her efter regner den ud hvad det koster. System skal dog både kunne regne individuelle priser og stndart priser.
Avatar billede Slettet bruger
16. maj 2006 - 12:34 #10
Hvad mener du helt præcist med "skal kunne vælge en standart størrelse", man kan jo sætte default værdien i feltet til eks. "11-20" er det sådan du mener eller er der forskellige standardværdier for forskellige produkter?~)
Avatar billede Slettet bruger
16. maj 2006 - 12:35 #11
og de her individuelle priser, hvis det er tilbudspriser, så skal du jo selv indtaste dem i et felt...
Avatar billede tupolev Nybegynder
16. maj 2006 - 13:17 #12
Ja det var måske lidt dårligt formuleret. Det vil nok være omkring 8 Standarter der vil indeholder forskellige størrelser og længder f.eks. standart 1: 11-20 i en længde af 250 og 31-40 i en længde af 341. Brugeren skal kun vælge produkt type A, B C, ect. resten regner system selv ud. Kunne det evt. laves med lister som man valgte produkt typer fra. Bare jeg kunne sende en mail der viste hvordan det gerne skulle se ud.
Avatar billede Slettet bruger
16. maj 2006 - 13:57 #13
Du er velkommen til at maile til spgeertz på hotmail!~)
Avatar billede Slettet bruger
16. maj 2006 - 13:58 #14
Husk databaser skal zippes...
Avatar billede tupolev Nybegynder
23. maj 2006 - 15:12 #15
Jeg er kommet videre med det og acceptere dit svar
Avatar billede Slettet bruger
29. maj 2006 - 11:17 #16
Så skal du lige huske at markere mit navn og så acceptere!~)
Avatar billede Slettet bruger
12. juli 2006 - 14:39 #17
!~)
Avatar billede Slettet bruger
12. juli 2006 - 14:40 #18
Spørgsmålet er stadig ikke afsluttet...
Avatar billede Slettet bruger
26. juli 2006 - 13:01 #19
tupolev?~)
Avatar billede Slettet bruger
27. juli 2006 - 07:42 #20
!~)
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