Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Access e VBScript

  1. #1

    Access e VBScript

    Avrei la necessità di leggere un file di testo ed esportare i valori in esso contenuti in una tabella di un database di access come nuovo record. Il tutto da un file .vbs che posso lanciare da windows.

    Vi prego aiutatemi!!!!

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    Ciao abisoftware,

    come sono i dati nel file di testo? Come è la tabella di access?

  3. #3
    Il file di testo lo posso creare come vuoi, la tabella in access è una tabella semplicissima con un campo "contatore" e una decina di campi numerici o testo.

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    allora...
    facciamo che il file di testo si chiama dati.txt ed è fatto così:
    la prima riga è il nome del campo e i campi sono separati dal TAB
    codice:
    "Nome"	"Colore"	"Numero"
    "willy"	"verde"	1
    "pippo"	"rosso"	36
    "pluto"	"giallo"	18
    e si trova nella cartella c:\txt\ dove devi mettere un file schema.ini fatto così
    codice:
    [dati.txt]
    ColNameHeader=True
    Format=TabDelimited
    MaxScanRows=50000
    l'mdb lo mettiamo in c:\dati.mdb ed ha una tabella che si chiama NomeTabella con gli stessi campi del txt e in più il contatore.
    il vbs si trova in c:\importa.vbs ed è fatto così
    codice:
    strAccessDB = "c:\dati.mdb"
    Set Conn = CreateObject("ADODB.Connection")
    strCon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & strAccessDB
    Conn.Open strCon
    DirectoryTxt = "c:\txt\"
    strConn = "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" & DirectoryTxt & ";Extensions=asc,csv,tab,txt"
    Set ConnTxt = CreateObject("ADODB.Connection")
    ConnTxt.Open strConn
    query = "SELECT * FROM dati.txt"
    set rs = CreateObject("ADODB.Recordset")
    rs.Open query,ConnTxt,3,3
    do while not rs.EOF
    	sql = "INSERT INTO NomeTabella (Nome,Colore,Numero) VALUES ('" & replace(rs("Nome"),"'","''") & "','" & replace(rs("Colore"),"'","''") & "'," & rs("Numero") & ")"
    	Conn.Execute sql
    	rs.MoveNext
    loop
    rs.Close
    set rs = Nothing
    ConnTxt.Close
    set ConnTxt = Nothing
    Conn.Close
    set Conn = Nothing

  5. #5
    Ho fatto come mi hai spiegato e sarebbe perfettamente quello di cui ho bisogno... ma mi da il seguente errore:

    Script: C:\importa.vbs
    Riga: 4
    Carattere: 1
    Errore: [Microsoft][Driver Manager ODBC] Nome origine dati non trovato e driver predefinito non specificato
    Codice: 80004005
    Origine: Microsoft OLE DB Provider for ODBC Drivers


  6. #6
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    che strano :master: mi posti le prime 4 righe del tuo vbs?

  7. #7
    strAccessDB = "c:\dati.mdb"
    Set Conn = CreateObject("ADODB.Connection")
    strCon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & strAccessDB
    Conn.Open strCon
    DirectoryTxt = "c:\txt\"

    Devo per caso definire qualche ODBC sul PC?

  8. #8
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    ma che sistema operativo hai?
    Controlla in Origine dati (ODBC) che trovi nel pannello di controllo se ci sono i driver per access

  9. #9
    Win 2000 ... ma... il PC su cui avevo provato ha l'origine dati "sgarruppato"... ora ho provato su un altro PC e l'errore è alla riga 13:

    sql = "INSERT INTO Tabella1 (Nome,Colore,Numero) VALUES ('" & replace(rs("Nome"),"'","''") & "','" & replace(rs("Colore"),"'","''") & "'," & rs("Numero") & ")"


    e come errore è il seguente:

    Errore: Impossibile trovare l'oggetto nell'insieme corrispondente al nome o al numero richiesto

    Origine: ADODB.Recordset

  10. #10
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    prova a mettere dopo questo
    codice:
    query = "SELECT * FROM dati.txt"
    set rs = CreateObject("ADODB.Recordset")
    rs.Open query,ConnTxt,3,3
    questo
    codice:
    campi=""
    for each field in rs.fields
      campi = campi & field.name & ", "
    next
    msgbox campi

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.