13. september 2007 - 22:24Der er
13 kommentarer og 1 løsning
databehandlingsdatabase hælp!
Hej eksperter,
Jeg sidder med et problem jeg håber I kan hjælpe mig med! Jeg har en masse filer i formatet txt med en række målinger ud for en dato. Opsætningen er som følger:
Dato m 01-03-2002 2 10-03-2002 10 03-04-2002 3 06-05-2002 2 17-05-2002 4 01-06-2002 1 [...] 05-04-2003 3 01-05-2003 4
Der er ingen systematik i afstanden mellem datoerne for målingerne og filerne indeholder målinger for flere år.
Det som jeg gerne vil, er at lave en funktion i Access som henter filen ind med måledata via en browserknap og Windows stifinder. Herefter skal der foretages databehandling (programmeret), idet der skal laves lineær interpolation mellem de enkelte målinger, hvilket skal gøre det muligt at oprette en ny outputfil med daglige interpolerede værdier. Den første dato definerer startdatoen (i eksemplet 01-03-2002) og den sidste slutdatoen (i eksemplet 01-05-2003) for hele outputfilen. Outputfilen vil således skulle indeholde følgende mellem den første og den anden dato.
herefter følger så d. 11-03-2003 med en interpolationsværdi af værdien mellem d. 10-03-2003 og d. 03-04-2003 osv. osv. indtil d. 01-05-2003.
Er der nogen som kan hjælpe mig med denne lille problemstilling, jeg står pt. på bar bund. Jeg vil naturligvis meget gerne donere de point der er nødvendige, så sig endelig til hvad der vil være rimeligt, da jeg ikke helt har fornemmelse for opgavens og hjælpens omfang.
1. Hvad er "bar bund" og hvad kan du selv finde ud af at lave ?
Jeg har en access applikation som gør følgende:
a. bruger vælger en eller flere filer ved hjælp af den normale fildialog b. fil(erne) læses ind c. de filer som blev indlæst uden fejl, flyttes til en subdirectory, så det er nemt at se hvad der har være behandlet og hvad ikke d. der laves noget behandling e. nogle nye filer, svarende til de behandlede udskrives af systemet f.+ en masse irrelevant andet
Jeg kan skære en fildialog ud til dig og klistre den ind her, men kan ikke hjælpe med andet i aften pga nogle andre commitments:) Får først tid en gang i weekenden.
alternativt - vent på mugs eller terry - de huserer her ustandseligt, og er nogle af de mest hjælpsomme individer, som formentligt kan klistre noget sammen til dig i løbet af no time:)
Det lyder da lovende! ang. bar bund så mangler jeg faktisk hele substansen, jeg plejer godt at kunne sammenstykke forskellige koder når de er lavet, men ikke selv skrive dem. så hvis du har mulighed for at klistre dit forslag ind kan jeg lige arbejde lidt med det og så se om det er tilstrækeligt.
Private Sub Kommandoknap25_Click() ' This requires a reference to the Microsoft Office 11.0 Object Library. Dim myFileName As String
Dim fDialog As Office.FileDialog Dim varFile As Variant
' Clear the list box contents. 'Me.FileList.RowSource = ""
' Set up the File dialog box. Set fDialog = Application.FileDialog(msoFileDialogFilePicker) With fDialog ' Allow the user to make multiple selections in the dialog box. .AllowMultiSelect = False
' Set the title of the dialog box. .Title = "Vælg en fil"
' Clear out the current filters, and then add your own. .InitialFileName = [MyPath] .Filters.Clear .Filters.Add "Manifest Filer", "*.TXT" .Filters.Add "Alle Filer", "*.*"
' Show the dialog box. If the .Show method returns True, the ' user picked at least one file. If the .Show method returns ' False, the user clicked Cancel. End With
If fDialog.Show = True Then ' Loop through each file that is selected and then add it to the list box. For Each varFile In fDialog.SelectedItems ' Me.FileList.AddItem varFile ' MsgBox (varFile) If Me.[Shipments underformular].Form.ReadManifest(varFile) = True Then Dim fs, f, s Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.getfile(CStr(varFile)) myFileName = fs.GetBaseName(CStr(varFile)) f.Move [MyPath] & "\Indlæste\"
Set f = Nothing Set fs = Nothing Set fDialog = Nothing
End Sub
Dette her får fat i et filnavn fra brugerens "selection" - men kan stilles til at tage flere ad gangen, kalder noget kode som læser disse filer ind, og hvis det lykkedes så bliver de originale filer flyttet.
Det kører in en access 2003, og ved uklarheder så ville jeg stærkt anbefale brugen af access hjælp (VBA) - der gemmers sig faktisk gode forkalringer/eksempler derinde.
Ved ikke hvor meget du får ud af det, men det er så mit bidrag for i aften.
Synes godt om
Slettet bruger
14. september 2007 - 10:31#5
Du kan prøve at sende din db zippet til spg.eksperten@gmail.com så kan jeg kigge på det. Helt simpelt er det nok ikke, man kan sagtens hente data ind ved en fixed kolonne import og så kan man køre et loop, som opretter manglende datoer.
Så er der lige de interpolerede værdier, der skal man også sidde og hygge sig lidt med et loop, som kan finde start og slut værdier og så hoppe tilbage og udfylde de mellemliggende interpolerede værdier. Så det ville altså tage noget tid!~)
jeg har endnu ikke oprettet en database da jeg ikke havde nogle ideer til databasen struktur. Men de kommentarer du kommer med lyder meget lovende, så hvis du har mod på det, må du meget gerne prøve at implementere dine kommentarer i en database, det vil virkelig være en stor hjælp! Som sagt har jeg ingen fornemmelse for opgavens omfang så sig til hvor mange points det kræver!
Baseret på ovenstående, så har jeg helt misforstået dine ønsker - jeg beklager.
Tricks/tips som hjælp til selvhjælp, og betalt med e-points, er fint. For en hel opgave så er der for mig nogle andre "points", som er mere relevante. De hedder DKK:)
Det var virkelig ikke meningen, min forespørgsel om hjælp skulle forstås som et forsøg på at betale et job med e-points. Jeg skal ikke trække mere på din tid neoman, undskyld!
Til Spq: Såfremt jeg har presset citronen for meget ved at spørge om du kunne implementere dine kommentarer i en database skriv da endelig tilbage. Jeg vil dog meget gerne have hjælp til denne opgave da den ligger udenfor mine kompetancer.
Synes godt om
Slettet bruger
17. september 2007 - 08:36#10
Jeg nyder meget at kunne hjælpe her på eksperten, da det udvider min kunnen, ved at præsentere mig for nogle problematikker, som jeg ikke umiddelbart ville støde på. Nogle gange sidder jeg så også i en situation, hvor jeg selv er kommet igennem et lignende problem og så føler jeg mig forpligtet til at dele denne viden. Og når jeg sidder med håret i postkassen, så har jeg selv kunnet trække på den kollektive viden, som er til rådighed her....
Jeg vil gerne prøve at hjælpe dig igang, du kunne sende et par af disse tekstfiler, så kan jeg hurtigt lave en importfunktion og generere nogle data, som du kan arbejde med. Det er jo også fint hvis du har det som et lille hygge projekt, men hvis du har tænkt dig at lave et professionelt arbejdsredskab, så er du måske nød til at tænke på hvad det ville være værd for dig og så få en til at lave opgaven.
Lige meget hvad, så er du velkommen til at sende en mail til spg.eksperten@gmail.com eller kigge forbi min hjemmeside www.spgprogramming.com
Tak for din meget positive tilbagemelding. Jeg sender en mail til dig snarest med et eksempel på datafilen som skal importeres og behandles.
Synes godt om
Slettet bruger
18. september 2007 - 14:05#12
Jeg er lige på kursus idag (SAP!~)
Synes godt om
Slettet bruger
20. september 2007 - 12:41#13
Hvis datoerne er sorteret stigende, der kun er 1 reg. pr. dag og der ikke er nogle tomme poster, så kan flg. klare det!~)
Private Sub UdfyldDato_Click() On Error Resume Next Dim d As Date, dd As Date, s As Date, v As Double, x As Double Dim r As DAO.Recordset Set r = Form_Eksempel.Recordset With r .MoveLast s = !Dato .MoveFirst d = !Dato Do Until .EOF If !Dato = d Then d = d + 1 dd = !Dato v = !Vol .MoveNext Else x = ((!Vol - v) / (!Dato - dd)) .AddNew !Dato = d !Vol = ((d - dd) * x) + v .Update d = d + 1 End If If d = s Then GoTo slut Loop slut: .Close End With Me.Eksempel.SourceObject = "eksempel" MsgBox "Datoer udfyldt og lineær interpolation udført!" End Sub
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.