Avatar billede larsgrau Forsker
08. marts 2011 - 09:10 Der er 3 kommentarer og
1 løsning

import af fil hvis din findes i en bestemt mappe

Hej

Jeg bruger denne idag, men der skal man selv vælge filen.

strFilter = ahtAddFilterItem(strFilter, "ALL FILES (*.*)", "*.*")
strInputFileName = ahtCommonFileOpenSave( _
                Filter:=strFilter, OpenFile:=True, _
                DialogTitle:="Please select an input file...", _
                Flags:=ahtOFN_HIDEREADONLY)

FileCopy strInputFileName, "c:\windows\temp\import.txt"

DoCmd.TransferText acImportDelim, "signalimport", "signal", "c:\windows\temp\import.txt", False, ""

Kill "c:\windows\temp\import.txt"

Err_import_file:
If Err.Number = 53 Then
Exit Sub
Else
MsgBox Err.Number & " - " & Err.Description

End If


Men jeg vil gerne have access til selv tage filen hvis den en i mappen, som jeg sætter et andet sted.

DoCmd.TransferText acImportDelim, "signalimport", "signal", dlookup("[sti]","uk_sti"], False, ""

dlookup viser til den mappe den ligge i, jeg vil gerne access til at kigge i den mappe hvem 5 sek, og se om der ligge en *.log fil

Kan dette lade sig gøre ??

/lars
Avatar billede Slettet bruger
08. marts 2011 - 11:56 #1
Der findes en egenskab for formularer der hedder timer - den kan ses på formularens egenskabsark, til sidst under hændelser fanen. Denne værdi skal sættes for at hændelsen indtræffer (1. gang)
Formularens ved timerudløb hændelse kunne se sådan ud:

Private Sub Form_Timer()
    Me.TimerInterval = 5000 'gør at hændelsen igen indtræffer om 5000ms
    Const fileName = "c:\windows\temp\import.txt"
    If Len(Dir(fileName)) Then
        DoCmd.TransferText acImportDelim, "signalimport", "signal", filename, False, ""
        Kill fileName
    End If
End Sub

Formularen kan åbnes af koden:

Function openHiddenFormSignal2DB()
    DoCmd.OpenForm "Signal2db", , , , , acHidden
End Function

Og denne kan kaldes af makroen Autoexec eller en hændelse i startformularen


Det er så lige spørgsmålet om noget kan afslutte formularen uventet, hvis det ligger i en databaseApp der laver alt muligt andet og måske fejler - det må komme an på en prøve.
At formularen kører (det åben form objekt eksisterer), kan man se ved at skrive:

---------immediate vinduet start
?forms("Signal2DB").Name
---------immediate vinduet slut

Den kan selfølgelig lukkes manuelt:

---------immediate vinduet start
docmd.Close acForm,"Signal2db"
?forms("Signal2DB").Name
---------immediate vinduet slut

et par småforsøg der viser den overlever visse ting:

denne er defineret
Function raiseError%(): raiseError = 1 / raiseError: End Function

---------immediate vinduet start
?forms("Signal2DB").Name
Signal2db
end 'clearer alle vaiable
?raiseError()
?forms("Signal2DB").Name
Signal2db
---------immediate vinduet slut
Avatar billede larsgrau Forsker
18. oktober 2011 - 09:04 #2
Hej kan du ikke skrive et svar så du kan få point ?
Avatar billede Slettet bruger
18. oktober 2011 - 15:42 #3
Når man har ventet mere end  1/2 år må man gerne lukke spørgsmålet med point til sig selv.
Avatar billede larsgrau Forsker
18. oktober 2011 - 20:09 #4
Oki
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





White paper
Rapport kortlægger de 13 bedste muligheder for at sætte turbo på din cloud computing