Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    aggiungere più record in una volta

    Sto facendo un file asp che importa i darti di une xcel in un file access.

    Il problema è che vorrei fare in modo che in una sola pagina asp vengono presi tutti i record excl e messi nel file mdb (precedentemente svuotato).

    Ma mi carica solo il primo record da file a file!!!

    Qualcuno ouò aiutarmi? posto qui sotto il codice...

    *****************************

    <%
    Const adOpenForwardOnly = 0
    Const adLockReadOnly = 1
    Const adCmdTableDirect = &H0200
    Const adUseClient = 3

    Dim connStr
    connStr = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("catalogo_w.xls") & ";Extended Properties=Excel 5.0;"
    strSQL="SELECT * FROM catalogo"

    Dim excelrs
    Set excelrs = Server.CreateObject("ADODB.Recordset")

    excelrs.PageSize = 1
    excelrs.CacheSize = 1
    excelrs.CursorLocation = adUseClient
    excelrs.Open strSQL, connStr, adOpenForwardOnly, adLockReadOnly, adCmdTableDirect
    %>

    <%
    Dim artista
    Dim titolo
    Dim label
    Dim formato
    Dim prezzo
    Dim genere
    Dim info
    Dim condizioni
    Dim novita
    Dim stato
    artista = excelrs("artista")
    titolo = excelrs("titolo")
    label = excelrs("label")
    formato = excelrs("formato")
    prezzo = excelrs("prezzo")
    genere = excelrs("genere")
    info = excelrs("info")
    condizioni = excelrs("condizioni")
    novita = excelrs("novita")
    stato = excelrs("stato")
    %>

    <%
    Dim Rs
    Dim Conn

    Set Conn=Server.createobject("ADODB.connection")
    Set Rs=Server.createobject("ADODB.Recordset")
    Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("../catalogo_w.mdb")

    set rs = Conn.Execute("DELETE * FROM catalogo")

    rs.open "catalogo", Conn,3,3
    rs.AddNew



    If Not excelrs.EOF Then

    rs("artista") = artista
    rs("titolo") = titolo
    rs("label") = label
    rs("formato") = formato
    rs("prezzo") = prezzo
    rs("genere") = genere
    rs("info") = info
    rs("condizioni") = condizioni
    rs("novita") = novita
    rs("stato") = stato

    excelrs.Movenext
    End If


    rs.update
    rs.close
    Set rs = nothing

    Conn.close
    Set Conn = nothing

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Il recordset aperto su Excel devi metterlo in un ciclo Do-Loop altrimenti leggi e escrivi solo il primo.

    http://www.w3schools.com/vbscript/vbscript_looping.asp

    Roby

  3. #3
    ho cambiato la parte del ciclo, usando Do...Loop, e spostando dentro il ciclo rs.Addnew e rs.Update:

    DO while NOT excelrs.EOF
    rs.AddNew
    rs("artista") = artista
    rs("titolo") = titolo
    ...
    rs.update
    excelrs.Movenext
    Loop


    ma mi carica N record nel DB, però tutti col valore del primo record del file excel!

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Assicurati di leggere tutti i record del file Excel.
    Stampali a video prima di fare l'inserimento nel db.

    Roby

  5. #5
    ho provato a farlo....e mi stampa a video tutti i record del file excel (anzi, anche i record vuoti, perchè arriva a un totale di 1500 record circa, mentre quelli rimepiti sono più o meno 50...), però quando il ciclo non lo uso più per stampare a video ma per importare da excel a access mi carica sempre 150 reocrd circa ma tutti uguali, e con lo stesso valore del primo record del file excel...

  6. #6
    mi correggo!!

    anche stampando a video i record mi ripete solo e sempre il primo!!

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Riposta lo scritp completo che usi.

    Roby

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Originariamente inviato da alescotti73
    mi correggo!!

    anche stampando a video i record mi ripete solo e sempre il primo!!
    Ah allora è il recordset su Excel che è sbagliato.

    Roby

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.