Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    89

    [VB6]Scittura in Access

    Salve ragazzi sono alle prese con una scrittura su db access, il mio progetto consiste nel leggere vaalori da excel e scriverli ni access però vb mi dice che il recorset mi di cè che non è valido, vi invio il codice per semplificarvi la vita
    potete aiutarmi

    Public Sub leggiriga(riga, colonna As Long)
    Dim myrecordset As New ADODB.Recordset
    Dim val As String
    Dim rscount As Integer
    Dim i As Variant
    Set myrecordset = New ADODB.Recordset

    myrecordset.Open "SitIncassi", gADOConnessione, adOpenDynamic, adLockOptimistic, adCmdTable

    While myrecordset.EOF = False ' mi da sempre valore vero e non entra mai nel ciclo
    i = 0
    rscount = myrecordset.Fields.Count
    While (i < rscount)

    myrecordset.AddNew

    While riga < myrow

    While colonna < mycol

    If (colonna = 6) Then
    colonna = colonna + 1
    Else
    val = Mysheet.Cells(riga, colonna).Value
    myrecordset.Fields(i) = val

    i = i + 1
    myrecordset.MoveNext
    colonna = colonna + 1
    End If
    Wend
    riga = riga + 1
    colonna = 1

    Wend
    Wend

    myrecordset!Tipologia = seltipo
    myrecordset!Anno = selanno
    myrecordset!Mese = selmese
    myrecordset!Data_Scadenza = datascadenza
    myrecordset!Data_Aggiornamento = dataagg

    myrecordset.Update

    MsgBox "Importazione file nel DB Terminata "

    Wend

    MYExcel.Quit
    Set myrecordset = Nothing
    Set Mysheet = Nothing
    Set MYExcel = Nothing

    Set gADOConnessione = Nothing

    End Sub

  2. #2
    Comincia col modificare il ciclo:
    Do While not MyRecordset.EOF = False
    ...
    ...

    MyRecordset.MoveNext
    Loop

    che cosa sono:
    "SitIncassi" e gADOConnessione (posta la stringa di connessione)

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Questo

    Dim myrecordset As New ADODB.Recordset
    Set myrecordset = New ADODB.Recordset

    non ha senso ...

    Dovrebbe essere

    Dim myrecordset As ADODB.Recordset
    Set myrecordset = New ADODB.Recordset

    .. e poi in quale linea ti da' l'errore, quale e' il codice preciso dell'errore e la sua descrizione ?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    89
    Ciao Mardok, comincio subito col ringraziarti per i tuoi suggerimenti....
    Sitincassi è il nome della tabella del db, la stringa di connessione invece è :


    Option Explicit
    'definizione dell'ogetto connection
    Global gADOConnessione As ADODB.Connection
    Public Sub main()
    'Apertura Connessione
    Dim PercorsoDB As String

    Set gADOConnessione = New ADODB.Connection

    PercorsoDB = "D:\Doc\Applicazioni Au\import Incassi\Incassi.mdb"
    gADOConnessione.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + PercorsoDB + ";Persist Security Info=False"
    gADOConnessione.Open
    'fine Apertura Connessione

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2005
    Messaggi
    89
    Ciao Oregon ho fatto una prova anche icludendo il tuo suggerimento ma l'errore che mi da è :
    Il record corrente corrisponde all'inizio o alla fine del file oppure è stato eliminato. Per eseguire l'operazione è necessario disporre di un record corrente.

    Per quanto concerne il punto di errore , si trova all'altezza della seguente istruzione :

    myrecordset.fields(i)= val

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il mio suggerimento non era legato al tuo errore specifico.

    Ti ho fatto solamente notare quello che e' una cosa che dovevi comunque correggere perche' (logicamente) sbagliata.

    Per il tuo errore specifico, invece, penso che sia legato a queste istruzioni ...

    myrecordset.AddNew

    ...

    myrecordset.MoveNext


    Se fai un AddNew, puoi scrivere nel nuovo record, ma quando il ciclo esegue la MoveNext, ti ritrovi oltre la fine del file, senza record, e la prima utilizzazione del record da' (ovviamente) quell'errore.

    Il tuo e' un errore "logico" ... devi rivedere il tuo algoritmo ...

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.