Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376

    Mega problema con import excel su access

    Salve a tutti, ho il seguente problema e sono fermo da circa 3 giorni.
    Ho una pagina asp con un form composto da piva e altri campi, all'interno di questa pagina devo poter caricare dei dati prelevati da excel o csv, il quale nome del file excel o csv, ha lo stesso nome della partita iva che ho immesso. Il problema è che il campo partita iva non si valorizza finche io non faccio salva sul bottone della form, ma prima di questa operazione devo poter caricare il file suddetto, come faccio a recuperare il valore del campo partita iva prima di eseguire la form?
    Codice:
    <%
    Sub ImportaDatiExcel()


    dim NumeroPIva
    NumeroPIva = Piva &".xls"


    conn1 = "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & Server.MapPath("mdb-database\" & NumeroPIva)


    dim RsImport
    Set RsImport = Server.CreateObject("ADODB.Recordset")
    RsImport.ActiveConnection = conn1
    RsImport.Source = "SELECT * from [Pod$]"
    RsImport.CursorType = 0
    RsImport.CursorLocation = 3
    RsImport.LockType = 2
    RsImport.Open()
    RsImport_numRows = 0
    %>

    <form name="form1" method="post" action="<%=MM_editAction%>">
    <table width="100%" border="0" cellpadding="0" cellspacing="3">
    <tr>
    <td colspan="6" class="Citazione">INFORMAZIONI AZIENDA</td>
    </tr>
    <tr>
    <!--<td width="2%"></td>-->
    <td width="7%" class="label">P Iva</td>
    <td><input name="Piva" id="Piva" type="text" maxlength="11" class="TestoRequiredS" onKeyUp="controllaPiva()" required></td>
    <td width="7%" class="label">Nome Azienda</td>
    <td><input type="text" name="Azienda" required class="TestoRequiredL"></td>
    .......
    <td class="label"><input name="Import" type="button" class="bottonicarica" value="IMPORTA" on onClick="<%ImportaDatiExcel()%>">Importa da CSV</td>
    <td width="40%"></td>
    </tr>
    </table>


    Grazie a tutti
    Chi Crede in Me non Perirà MAI

  2. #2
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    ho l'impressione che la questione non sia esposta in maniere completa...

    prima cosa: il file numeropartitaiva.xls è già stato caricato e porta questo nome?

    se si, il problema dov'è?
    passi la variabile request("piva") e hai il valore che ti interessa:
    codice:
    NumeroPIva = request("piva") &".xls"
    ovviamente si suggerisco di controllare prima l'esistenza del file xls, altrimenti la query va in errore le il file non esiste

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    Grazie della risposta.
    No il file xls ha come nome il numero della partita iva.xls, quindi è univoco.
    Il file xls viene carica manualmente nella cartella e io voglio leggere i dati in esso contenuti per poi importarli in una tabella access che abbia lo stesso nome del file xls, quindi il numero di partita iva.
    Ho cambiato il codice con questo:

    <form name="form1" method="post" action="<%=MM_editAction%>">
    <table width="100%" border="0" cellpadding="0" cellspacing="3">
    <tr>
    <td colspan="6" class="Citazione">INFORMAZIONI AZIENDA</td>
    </tr>
    <tr>
    <!--<td width="2%"></td>-->
    <td width="7%" class="label">P Iva</td>
    <td><input name="Piva" id="Piva" value="<%=request.QueryString("PI")%>" type="text" maxlength="11" class="TestoRequiredS" required onBlur="javascript:window.location='anagrafica.asp ?PI='+escape(document.form1.Piva.value)" onKeyUp="controllaIva()"></td>
    ...........
    <td class="label">Importa da CSV
    <form name="form2" action="carica_file.asp" method="get">
    <input name="Import" type="submit" class="bottonicarica" value="IMPORTA">
    <input name="PI" type="hidden" value="<%=request.QueryString("PI")%>">
    <input name="Import" type="hidden" value="form2">
    </form>
    </td>
    </form>
    L'idea che voglio attuare è che quando premo il pulsante importa si vada alla pagina carica_file.asp si esegua il codice in essa contenuto e poi si ritorni alla pagina principale.
    Grazie
    Chi Crede in Me non Perirà MAI

  4. #4
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    Quote Originariamente inviata da devil946 Visualizza il messaggio
    SI il file xls ha come nome il numero della partita iva.xls
    quindi in problema dove sta? da quello che hai scritto il valore lo recuperi via querystring e lo invii a carica_file.asp

    perché due form? a che servono? inoltre questi form sono annidati e non va bene (prima cosa da risolvere)

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    Infatti come faccio a sciogliere i due form? E poi posso usarne uno solo?
    Te coem risolveresti?
    Chi Crede in Me non Perirà MAI

  6. #6
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    questa pagina serve solo per quest'operazione?

    metti solo un form con quello che ti serve.

    tutta l'elaborazione la fai in carica_file.asp


    edit
    anzi, volendo, fai tutto nella stessa pagina. bisogna solo vedere come è impostato il progetto e se conviene

    NB: ricorda di USARE SEMPRE il tag CODE per postare codice sul forum, grazie.
    (vedi tasto # in modalità avanzata)
    Ultima modifica di Vincent.Zeno; 08-03-2016 a 15:56

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    Giusto, per adesso ce l'ho fatta, ma ora ho un'altro problema.
    devo poter eliminare una tabella se esiste che ha lo stesso nome di quella che devo creare, l'istruzione drop table è quella giusto, sono sicuro ma non funziona, mi dici perché?
    #sub EliminaTabella() Dim conn1
    dim SQL
    Dim oRSet1
    dim adSchemaTables
    dim NumeroPIva


    NumeroPIva = request.QueryString("PI")
    'creo l'oggetto Connection
    Set conn1 = Server.CreateObject("ADODB.Connection")
    'apro la connessione con la fonte di dati
    conn1.open conn
    'RICAVO LA LISTA DELLE TABELLE CONTENUTE NEL DB
    adSchemaTables = 20
    Set oRSet1 = conn1.OpenSchema(adSchemaTables)
    do while not oRSet1.eof
    if oRSet1("TABLE_NAME") = NumeroPIva then
    ' eseguo l'eliminazione della tabella
    SQL="DROP TABLE" & NumeroPIva
    conn1.execute SQL
    end if
    oRSet1.MoveNext
    Loop
    end sub
    ' FINE CODICE PER ELIMINARE TABELLA SE ESISTE
    #
    Chi Crede in Me non Perirà MAI

  8. #8
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    per favore correggi il post e inserisci il codice nel tag [code] [/code]

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2003
    Messaggi
    376
    codice:
    sub EliminaTabella() Dim conn1
    dim SQL
    Dim oRSet1
    dim adSchemaTables
    dim NumeroPIva	
    
    
    NumeroPIva = request.QueryString("PI")	
    'creo l'oggetto Connection
    Set conn1 = Server.CreateObject("ADODB.Connection")
    'apro la connessione con la fonte di dati
    conn1.open conn
    'RICAVO LA LISTA DELLE TABELLE CONTENUTE NEL DB
    adSchemaTables = 20
    Set oRSet1 = conn1.OpenSchema(adSchemaTables)
    do while not oRSet1.eof
    if oRSet1("TABLE_NAME") = NumeroPIva then
    ' eseguo l'eliminazione della tabella
    SQL="DROP TABLE" & NumeroPIva
    conn1.execute SQL
    end if
    oRSet1.MoveNext
    Loop
    end sub
    ' FINE CODICE PER ELIMINARE TABELLA SE ESISTE
    Chi Crede in Me non Perirà MAI

  10. #10
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    20,812
    codice:
    SQL="DROP TABLE '"&NumeroPIva&"' "
    edit... no: non serve la definizione 'testo', mi confondevo

    codice:
    SQL="DROP TABLE "&NumeroPIva&" "
    Ultima modifica di Vincent.Zeno; 08-03-2016 a 16:50

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.