Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di StegcO
    Registrato dal
    Aug 2008
    Messaggi
    371

    Problema lettura RS Excel

    Ciao

    stò trasportando un file excel in access, in pratica come spiegato creo un RS_Excel e leggo le varie celle..

    funziona tutto nel senso che ho una sola riga, per esempio

    codice:
    If IsNull(Rs_Excel(1).Value) Then Var_1 = "" Else Var_1 = Rs_Excel(1).Value
    If IsNull(Rs_Excel(2).Value) Then Var_2 = "" Else Var_2 = Rs_Excel(2).Value
    If IsNull(Rs_Excel(3).Value) Then Var_3 = "" Else Var_3 = Rs_Excel(3).Value
    If IsNull(Rs_Excel(4).Value) Then Var_4 = "" Else Var_4 = Rs_Excel(4).Value
    If IsNull(Rs_Excel(5).Value) Then Var_5 = "" Else Var_5 = Rs_Excel(5).Value
    If IsNull(Rs_Excel(6).Value) Then Var_6 = "" Else Var_6 = Rs_Excel(6).Value
    If IsNull(Rs_Excel(7).Value) Then Var_7 = "" Else Var_7 = Rs_Excel(7).Value
    If IsNull(Rs_Excel(8).Value) Then Var_8 = "" Else Var_8 = Rs_Excel(8).Value
    If IsNull(Rs_Excel(9).Value) Then Var_9 = "" Else Var_9 = Rs_Excel(9).Value
    Rs_Excel(9).Value = Null ma inr ealtà nell'excel è pieno..

    solo che l'ultima cella che devo leggere mi dice che vale "Null".. ma se apro ilf ile di excel i realtà contiene un valore..

    com'è possibile? vi è mai capitato?

    se copio la cella e la incollo su se stessa poi me la legge..

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Ehm, giusto per comprendere di cosa stai scrivendo:

    - linguaggio ?
    - RS_Excel cos'è?
    - RS_Excel(x) cosa indica?


  3. #3
    Utente di HTML.it L'avatar di StegcO
    Registrato dal
    Aug 2008
    Messaggi
    371
    - VB6
    - E' un RecordSet contente il file Excel
    - Rs_Excel(9) è la cella di Excel che dovrebbe contenere XXX e invece leggendolo da VB6 dice Null

    ^^

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da StegcO
    - VB6
    OK

    Originariamente inviato da StegcO
    - E' un RecordSet contente il file Excel
    Creato come? Usi DAO oppure ADO.
    Mostra il codice...

    Originariamente inviato da StegcO
    - Rs_Excel(9) è la cella di Excel che dovrebbe contenere XXX e invece leggendolo da VB6 dice Null
    Non mi pare sia proprio possibile.
    Se Rs_Excel è un Recordset, allora Rs_Excel(9) può essere solo un campo del recordset, non può essere una cella di Excel.


  5. #5
    Utente di HTML.it L'avatar di StegcO
    Registrato dal
    Aug 2008
    Messaggi
    371
    codice:
    StringaConn_Excel = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Dialogo.FileName & ";Extended Properties=Excel 8.0;"
    
    Set Rs_Excel = Conn_Excel.Execute(" SELECT * FROM [Sheet1$] ")
    Poi leggo le varie celle e metto i valori nelle variabili con

    codice:
    If IsNull(Rs_Excel(1).Value) Then Var_1 = "" Else Var_1 = Rs_Excel(1).Value
    If IsNull(Rs_Excel(2).Value) Then Var_2 = "" Else Var_2 = Rs_Excel(2).Value
    If IsNull(Rs_Excel(3).Value) Then Var_3 = "" Else Var_3 = Rs_Excel(3).Value
    If IsNull(Rs_Excel(4).Value) Then Var_4 = "" Else Var_4 = Rs_Excel(4).Value
    If IsNull(Rs_Excel(5).Value) Then Var_5 = "" Else Var_5 = Rs_Excel(5).Value
    If IsNull(Rs_Excel(6).Value) Then Var_6 = "" Else Var_6 = Rs_Excel(6).Value
    If IsNull(Rs_Excel(7).Value) Then Var_7 = "" Else Var_7 = Rs_Excel(7).Value
    If IsNull(Rs_Excel(8).Value) Then Var_8 = "" Else Var_8 = Rs_Excel(8).Value
    If IsNull(Rs_Excel(9).Value) Then Var_9 = "" Else Var_9 = Rs_Excel(9).Value
    In pratica è come se ogni riga di excel fosse un Recordset e le varie celle della riga i vari campi

    tant'è che fino a Rs_Excel(8) legge benissimo i valori.. arriva al 9 e dice Null..

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Allora mi sembra che il tuo problema è che esegui la lettura dei campi del recordset iniziando dal secondo campo, infatti usi l'indice 1.
    Invece la collection Fields è a base 0, mentre le colonne di Excel partono da 1.
    Questo spiegherebbe il perchè all'ultimo campo ti risponde Null.

    Dovresti partire da 0, ovvero:

    codice:
    If IsNull(Rs_Excel(0).Value) Then Var_1 = "" Else Var_1 = Rs_Excel(0).Value

  7. #7
    Utente di HTML.it L'avatar di StegcO
    Registrato dal
    Aug 2008
    Messaggi
    371
    Hemmm.. no, perchè io ho i valori a incominciare da B non da A nel foglio excel..

    e poi come ho scrtto se modifico lexcel a mano. nonsò tagliando/incollando la cella su stessa poi me lo legge..

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da StegcO
    Hemmm.. no, perchè io ho i valori a incominciare da B non da A nel foglio excel..
    Ah, e lo dici solo adesso?
    Direi che a questo punto dovresti allegare il tuo foglio Excel, perchè non possiamo tirare ad indovinare quali dati e come sono messi nel foglio.

    Non credo tu possa allegare il file al post, eventualmente mandamelo
    vbcorner@vbcorner.net


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.