Newsgroup: it.comp.appl.access
Titolo: problemi esportazione xls con 365

salve
 
ci sono delle restirzione nell'esportazione con Office 365?
 
prima utilizzavo
 
    oWkb.Sheets(1).Range("A4").CopyFromRecordset rs


In che senso...? Hai provato e non funziona o è una domanda preventiva...?
 
Io con 365 lo uso regolarmente.
 
@Alex

La stessa procedura su versione 2003 2010 2013 funziona 365 i valori numerici nulla



Salvi XLSX o XLS...?
Hai verificato le costanti di salvataggio...?
Se non ricordo male è in wffetti cambiata qualche costante di tipo sul SaveAS o sul FORMAT del file... purtroppo non ricordo esattamente quale ma fin da a2016...
 
@Alex


    ' EXCEL     --> Select Case xlApp.Version
    ' MsAccess  --> Select Case Application.Version
    '
    ' 43 -- .xls  -- xlExcel9795 -- Excel version 95 and 97
    ' 56 -- .xls  -- xlExcel8    -- Excel 97-2003 Workbook
    ' 50 -- .xlsb -- xlExcel12   -- Excel Binary Workbook
    '
    Select Case xlApp.Version   ' la versione di Excel
      Case "11.0"
           ' ver 2003
           nParametro_xSalvare = 43
      Case "14.0"
           ' ver 2016
           nParametro_xSalvare = 56
      Case Else
           ' altre versioni
           nParametro_xSalvare = 56   <============== questo forse non e' corretto
    End Select


vedo che per 365   
 
xlApp.Version = "16.0"
 
ho provato a mettere il paramentro 52 o 56 o 51 o 50
 
tutte le celle cha hanno valori decimali non vengono riempite
se visualizzo la query che utilizzo e' corretta 
se utilizzo accees 2010 o 2003 o 2016 funziona
 
avete dei consigli?
 
GRAZIE


salve avrei proprio la necessità di una dritta perchè non capisco parche' solo con Access 365 non mi esporta dei campi nomerici
 
ho provato sia col comando 
 
CopyFromRecordser rs
 
che con 
 
 
    Do While Not rs.EOF()
       ' scrivo i nomi dei campi
       For i = 0 To rs.Fields.Count - 1
           ' cells(1,"A")
           Debug.Print i + 1 & " " & rs.Fields(i).Name & " --> " & Nz(rs.Fields(i).value, 0)
           If rs.Fields(i).Name = "PesoCampione"  Then  ' >>>>>> nel rs non vedo il valore
              Debug.Print rs.Fields(i).Name & " --> " & Nz(rs.Fields(i).value, 0)
           End If
           ' Debug.Print rs.Fields(i).Name & " --> " & Nz(rs.Fields(i).value, 0)
           oWkb.Sheets(1).CELLS(nRiga, i + 1).value = Nz(rs.Fields(i).value, 0)
       Next
    Loop
 
con le versioni precedenti funziona invece
 
pootete darmi per favore una dritta?
 
GRAZIE
 
 

Non riesco a darti indicazioni precise in quanto non ho modo di dedicarmici...
 
Provo a darti questo link:
 
http://forum.masterdrive.it/access-79/access-definire-i-campi-esportare-in-excel-54294/
 
 
Trovi un demo complesso e contorto... non guardarlo... ma in un modulo c'è la funzione di Export in excel che contiene il codice che credo possa aiutarti...
Non ne sono certo ma puoi fare un tentativo.
 
@Alex

Ho creato la query temporanea ed eseguendo la mi fa vedere tutti i dati 
 
ma se nella procedura che uso se testo in debug e provo a visualizzare i valore vedo i valori di testo ma poi gli altri sembrano vuoti anche se con access precedente funziona perfettamente

La sezione di codice di cui ti parlavo è contenuta nella Classe [clsExcel], in particolare alla Funzione [CreateNewWorkBook].
 
Di fatto(usando EarlyBinding in fase di prova):
Private mWB                             As Excel.Workbook       'Object
 
Function CreateNewWorkBook(strPATH As String) As String
    Dim FileExtStr      As String
    Dim FileFormatNum   As Long
    Dim strFile         As String
    Dim intINDEX        As Integer
 
    strFile = RemoveExtension(strPATH)
    Set mWB = mXLSAPP.Workbooks.Add
 
    With mWB
        'uso la proprietà FileFilter come variabile per assegnare il valore corretto relativo a Workbook SaveAs
        If Val(mXLSAPP.Version) < 12 Then
            'You use Excel 97-2003
            FileExtStr = ".xls": FileFormatNum = -4143
 
        Else
            Select Case .FileFormat
 
                Case 51: FileExtStr = ".xlsx": FileFormatNum = 51
 
                Case 52:
                    If .HasVBProject Then
                        FileExtStr = ".xlsm": FileFormatNum = 52
                    Else
                        FileExtStr = ".xlsx": FileFormatNum = 51
                    End If
 
                Case 56: FileExtStr = ".xls": FileFormatNum = 56
 
                Case Else: FileExtStr = ".xlsb": FileFormatNum = 50
 
            End Select
 
        End If
 
        If FileExist(strFile & FileExtStr) Then Kill strFile & FileExtStr
        Call DeleteAllSheets
        .SaveAs strFile & FileExtStr, FileFormat:=FileFormatNum
        DoEvents
    End With
    CreateNewWorkBook = strFile & FileExtStr
 
End Function
 
Quindi nella sostanza, toglie l'estensione ed in base alla Versione la riassegna, ma non solo ridefinisce il Parametro FileFormat...
 
Creato il WorkBook puoi fare un semplice test di CopyFromRecordset... e salvataggio.
 
Se vuoi usare la Classe, hai a disposizione la Funzione [PastData] alla quale passando il Nome del Foglio in cui scrivere, ed il RS contenente i dati, dovrebbe scrivere... 
Ovviamente essendo una Classe va usata in modo completo, eventualmente puoi valutare solo la parte utile.
 
 
@Alex