import dati da fogli excel e file txt

Come utilizzare gli script. Automatizzare gli archivi. Utilizzo dei pulsanti

Moderatore: Moderatori

Rispondi
Stevecor
Messaggi: 3
Iscritto il: giovedì 29 aprile 2021, 15:19
Versione FileMaker: 16
Sistema operativo: 15

import dati da fogli excel e file txt

Messaggio da Stevecor » mercoledì 5 gennaio 2022, 17:27

Salve a tutti,
premetto che sono nuovissimo di filemaker quindi scusate se le richieste saranno per molti di voi delle banalità ma dopo aver navigato in lungo e in largo alla ricerca di informazioni mi sono deciso a scrivere:
Ho una app in access che vorrei portare in filemaker. La suddetta per una parte viene alimentata da file excel che mi pervengono da aziende con cui collaboro e che acquisisco andando ad aggiungere i dati a una tabelle di access ( ora ) .
Con access ho una funzione che mi apre il file ( lo scelgo da una finestra ) e la procedura scorre le righe fino a che non trova una riga vuota, nel qual caso esce e riferisce il foglio dove stanno i dati e le singole celle in modo molto preciso e tutto funziona. Per FM ho cercato come un pazzo ma non ho trovato nulla.
Ho anche una altra import che faccio ricorrentemente da un file di testo dove ho mappato le posizioni e tutto fila liscio. Anche qui funzioni che mi permettano un controllo simile a ciò che accade con Access non ne ho trovati. Qualche suggerimento?
PS
Allego il codice visual basic

Codice: Seleziona tutto

•	Import di dati da file snam
Private Sub btnImpSnam_Click()


Dim FileToImport As String
'Dim fornitore As String
Dim fileDiag As FileDialog
Dim intNumRow As Integer
'Dim xlApp As Excel.Application
'Dim xlBk As Excel.Workbook
'Dim xlSht As Excel.Worksheet
Dim dbRst As Recordset
Dim tabelle As Variant
Dim SQLStr As String
Dim strNumbolla As String
Dim dateBolla As Date
Dim strFornitore As String
Dim intCount As Double
Dim strVettore As String
Dim strRete As String
Dim strMercato As String
Dim strData As String
Dim strM3_g As String
Dim strAOP As String
Dim strPCSK1 As String
Dim strPCS25 As String
Dim strRhos As String
Dim strUbicaz As String
Dim StrM3HMax As String
Dim strTp As String
Dim strPCIKJ As String
Dim strPCI25 As String
Dim strNm3gg As String
Dim strNm3h_max As String
Dim strPCS250kw As String
Dim strPCI250kw As String
Dim strRhon As String
Dim strPP As String
Dim strPV As String






intNumRow = 1

Set fileDiag = Application.FileDialog(msoFileDialogFilePicker)

With fileDiag
    If .Show = True Then
    FileToImport = .SelectedItems.Item(1)
    End If
    
End With



If FileToImport = "" Then
MsgBox "nessun file selezionato", vbOKOnly

Exit Sub
End If

Set tabelle = CurrentDb


Set dbRst = tabelle.OpenRecordset("impsnam")

Open FileToImport For Input As #1

intCount = 1
Do Until EOF(1)
    Line Input #1, riga
    'salta le prime righe del file
    If intCount < 3 Then
        Do While intCount <= 3
            Line Input #1, riga
            intCount = intCount + 1
        Loop
    End If
    
    
    
    
strRete = Mid(riga, 1, 8)
strMercato = Mid(riga, 9, 9)
strData = Mid(riga, 19, 10)
strM3_g = Mid(riga, 29, 10)
strAOP = Mid(riga, 39, 5)
strPCSK1 = Mid(riga, 44, 6)
strPCS25 = Mid(riga, 50, 13)
strRhos = Mid(riga, 65, 7)
strUbicaz = Mid(riga, 73, 39)
StrM3HMax = Mid(riga, 112, 9)
strTp = Mid(riga, 122, 2)
strPCIKJ = Mid(riga, 124, 5)
strPCI25 = Mid(riga, 130, 13)
strNm3gg = Mid(riga, 143, 10)
strNm3h_max = Mid(riga, 153, 7)
strPCS250kw = Mid(riga, 161, 13)
strPCI250kw = Mid(riga, 174, 13)
strRhon = Mid(riga, 189, 7)
strPP = Mid(riga, 197, 2)
strPV = Mid(riga, 199, 2)

If Trim(strRete) = "" Then Exit Do




dbRst.AddNew
    dbRst.Fields("rete") = strRete
    dbRst.Fields("mercato") = strMercato
    dbRst.Fields("data_lett") = CDate(strData)
    dbRst.Fields("m3_gg") = CDbl(strM3_g)
    dbRst.Fields("aop") = CDbl(strAOP)
    dbRst.Fields("PCsKJ") = CDbl(strPCSK1)
    dbRst.Fields("PCs25_15kwh") = CDbl(strPCS25)
    dbRst.Fields("rhos") = CDbl(strRhos)
    dbRst.Fields("ubicazione") = strUbicaz
    
    If Trim(StrM3HMax) = "" Then StrM3HMax = "0"
    dbRst.Fields("m3_hmax") = CDbl(StrM3HMax)
    
    
    dbRst.Fields("tp") = strTp
    dbRst.Fields("PCIKJ") = CDbl(strPCIKJ)
    dbRst.Fields("PCI25_15KWH") = CDbl(strPCI25)
    dbRst.Fields("nm3_d") = CDbl(strNm3gg)
    
    If Trim(strNm3h_max) = "" Then strNm3h_max = "0"
    dbRst.Fields("Nm3H_max") = CDbl(strNm3h_max)
   
    
    dbRst.Fields("pcs25_0KWh") = CDbl(strPCS250kw)
    dbRst.Fields("pci25_0KWh") = CDbl(strPCI250kw)
    dbRst.Fields("rhon") = CDbl(strRhon)
    dbRst.Fields("pp") = strPP
    dbRst.Fields("pv") = strPV
    
    
    
    dbRst.Update


Loop
   
         
 Close #1
    
    
    
    
    
  
'ErrorHand:

    'dbRst.Close
    'tabelle.Close
    'xlBk.Close
    'Exit Sub





End Sub







Meccanico1991
Messaggi: 66
Iscritto il: venerdì 11 dicembre 2020, 8:32
Versione FileMaker: 14
Sistema operativo: OSX

Re: import dati da fogli excel e file txt

Messaggio da Meccanico1991 » mercoledì 5 gennaio 2022, 17:59

C'è uno script apposito che si chiama "Importa record". Li specifichi l'origine dei dati, cioè se si tratta un file excel, un file txt, etc...
L'altra specifica è l'ordine di importazione che ti permette di "collegare" i tuoi campi Filemaker con quelli provenienti dall'esterno.
Buon lavoro... ;)

Ciao

Stevecor
Messaggi: 3
Iscritto il: giovedì 29 aprile 2021, 15:19
Versione FileMaker: 16
Sistema operativo: 15

Re: import dati da fogli excel e file txt

Messaggio da Stevecor » giovedì 6 gennaio 2022, 18:04

Grazie per la risposta
Ti chiedo solo un chiarimento: fai riferimento allo strumento a cui si accede dal menu di fm pro?
Per il file txt dove specifico le posizioni da importare si possono specificare come dall esempio allegato?

Meccanico1991
Messaggi: 66
Iscritto il: venerdì 11 dicembre 2020, 8:32
Versione FileMaker: 14
Sistema operativo: OSX

Re: import dati da fogli excel e file txt

Messaggio da Meccanico1991 » giovedì 6 gennaio 2022, 18:52

Ti chiedo solo un chiarimento: fai riferimento allo strumento a cui si accede dal menu di fm pro?
Si, certo. Quella funzione la trovi anche all'interno delle Istruzioni di Script.
Per il file txt dove specifico le posizioni da importare si possono specificare come dall esempio allegato?
Purtroppo non conosco Access. Tieni presente che l'importazione di dati è una procedura abbastanza critica. Ti consiglio di sperimentare e controllare passo per passo il funzionamento. Se vuoi puoi girarmi via mail un file di esempio... ;)

Ciao

Rispondi