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
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