Newsgroup: it.comp.appl.access
Titolo: Importazione file txt da codice-modifica nome del file da caricare

In una maschera ho questo comando
Private Sub Importa_Click()
DoCmd.TransferText acImportFixed, "largh_fissa", "Tutto",
"e:\temp\tutto.txt", False, ""
End Sub
volevo sapere se c'è la possibilità e se si come fare a poter cambiare il
nome del file 
da caricare, magari tramite una casella di testo
grazie
ciao
calimero

 ha scritto nel messaggio
news:1g4o6phwq8i0e.sclfk4usdhu8$.dlg@40tude.net...

Ciao Calimero,
Supponendo tu metta nella maschera una casella di testo di nome
txt_percorso, dove l'utente digiterà il percorso del file l'istruzione
diventa:
DoCmd.TransferText acImportFixed, "largh_fissa", "Tutto", me.txt_percorso,
False, ""ù
per farlo ancora più carino, potresti mettere un pulsante cerca file che
apre la finestra di dialogo di Windows per selezionare i files, e una volta
selezionato scrive il percorso nella casella di testo.
Per fare questo puoi vedere su 
www.sitocomune.com
   sezione Modules  Usare
le API Di Windows parte I: common Dialog.
Saluti
Cinzia



Ciao Cinzia,
Grazie, ora proverò in tutte e due i modi
ciao Calimero

In data Wed, 6 Oct 2004 21:38:31 +0200, Cinzia ha scritto:

Ciao Cinzia, 
ho provato a creare una maschera con un tasto che 
mi apre il browser per selezionare il file da importare,
(non ho utilizzato l'esempio di sito comune perchè non funzionava)
ho usato questo:
Private Sub ImpFile_Click()
   Dim NomeFile As Variant
   Dim lngFlags As Long
   Dim gfni As accOfficeGetFileNameInfo
   Dim OutText As String
   Dim result
   On Error GoTo HandleErrors
   'lngFlags = lngFlags Or bacGfniAllowMultiSelect
   'lngFlags = lngFlags Or bacGfniInitializeView
   With gfni
      .lngView = 1
      .lngFlags = lngFlags
      ' Make sure not to pass in Null values. adhOfficeGetFile
      ' doesn't like that, and often GPFs.
      .strFilter = ""
      'If Len(.strFilter) > 0 Then
      '    .lngFilterIndex = CInt(Me.txtFilterIndex)
      'End If
      .strFile = ""
      .strDlgTitle = "Seleziona File da importare"
      .strOpenTitle = "Importa"
      .strInitialDir = "C:\"
      .hwndOwner = Application.hWndAccessApp
   End With
   If OfficeGetFileName(gfni, -1) = 0 Then
      result = fFullPath(Trim(gfni.strFile))
      'result = Split(CStr(result), Chr(9))
      'If IsArray(result) Then
      '    For Each NomeFile In result
      '        OutText = OutText + ParseFileName(NomeFile) + ";"
      '    Next
      '    Me.lstFile.RowSource = OutText
      '    Me.lstFile.Requery
      '   Me.lblTotale.Caption = "Files Selezionati n° = " &
Me.lstFile.ListCount
      'End If
    End If
ExitHere:
   Exit Sub
HandleErrors:
   MsgBox "Error: " & Err.Description & " (" & Err.Number & ")"
   Resume ExitHere
End Sub
ora mi funziona, mi apre la finestra browser e riesco a selezionare il
file,
ma non riesco a capire come fare perche mi inserisca i dati del file 
nella tabella che ho creato.
secondo te si potrebbe importare il file direttamente o bisogna creare una
textbox 
per visualizzare il file da importare.
grazie per l'aiuto
ciao 
Calimero

 ha scritto nel messaggio
news:18rfw9zdny6lj.1h5eg6fndfpum$.dlg@40tude.net...

 Ciao Calimero,
mi sembra  dal codice che hai postato che il  nome del file che hai
selezionato dovrebbe essere contenuto nella variabile result, anche se per
dirlo con certezza mi manca qualche pezzo di codice.
per cui se vuoi salvarlo in una casella di testo potresti aggiungere una
istruzionedel tipo
me.txtFiletoOpen = result.
Nessuno però ti vieta di non registrare il nome del file nella casella e di
procedere subito con l'importazione usando:
DoCmd.TransferText acImportFixed, "largh_fissa", "Tutto", result, False, ""
Saluti
Cinzia

 Cinzia
Ciao Cinzia,
ho modificato la form di importazione e ho messo sia una textbox per
visualizzare il percorso
ed ilnome del file 
che un'opzione per poter cancellare il file stesso dopo l'importazione
questo è il codice:
Option Compare Database
Option Explicit
Dim nRecMax As Long
Function SaveAs() As String
'******** Esempio di Chiamata ***************
  Dim loDlg As clsBrowserDialog
  Set loDlg = New clsBrowserDialog
  With loDlg
    .hWnd = Me.hWnd
    .Filter = "Tutti file (.*)|*.*"
    .Title = "Importa Dati..."
    .StartDir = GetPathPart(CurrentDb.Name)
    .Open_File
  End With
  SaveAs = loDlg.FileName
  '******** Fine Esempio ***************
End Function
Private Sub cmdImport_Click()
   SetTbl
End Sub
Private Sub cmdSalva_Click()
   Dim strFile As String
   strFile = SaveAs()
   If strFile = vbNullString Then Exit Sub
   Me.txtImport = strFile
   Me.cmdImport.Enabled = True
End Sub
Private Sub SetTbl()
 
   Dim MaxRec As Variant
   Dim rs As Recordset
   DoCmd.TransferText acImportFixed, "largh_fissa", "tbl_import",
txtImport, False, ""
 
   DoCmd.SetWarnings False
     If Me.ckKill Then Kill Me.txtImport
     Me.txtImport = vbNullString
   MsgBox "Operazione terminata...!", vbExclamation, "Perfect..."
Exit_Here:
   Set rs = Nothing
 
   DoCmd.SetWarnings True
Exit Sub
End Sub
volevo creare una gestione degli errori di importazione (file danneggiato
ed altro)
mi potresti dire come si può fare?
grazie
ciao Calimero

[CUT]

Ciao Calimero,
pere gestire situazioni d'errore nella SetTbl() cambiala così:
Private Sub SetTbl()
    Dim MaxRec As Variant
    Dim rs As Recordset
On Error Got SetTbl_err
  DoCmd.TransferText acImportFixed, "largh_fissa", "tbl_import", txtImport,
False, ""
    DoCmd.SetWarnings False
      If Me.ckKill Then Kill Me.txtImport
      Me.txtImport = vbNullString
    MsgBox "Operazione terminata...!", vbExclamation, "Perfect..."
 Exit_Here:
   Set rs = Nothing
    DoCmd.SetWarnings True
 Exit Sub
SetTbl_Err:
        Select case Err.Number
                case  xxx:   ' qui metti il numero di errore che vuoi
intercettare
                        MSgBox  Err.Description
                        'NOTA : err.description ti da l'errore di sistema,
magari vorrai convertirlo in qualcosa di più familiare all'utente
                        .....
                case yyy:
                        MsgBox err.description
                        .....
                case else
                        msgBox Err.description
        end select
        goto Exit_here
 End Sub
Saluti Cinzia