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

    [VB6]Problema con recordset access

    Buongiorno forum.
    Ho un problema con un codice 3251.
    Mi spiego...questo è il mio codice:
    codice:
    Dim Cn As New ADODB.Connection
    Dim Rs As New ADODB.Recordset
    Dim q As String
    
    Private Sub Command1_Click()
    Cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=db2.mdb;"
    Cn.CursorLocation = adUseClient
    q = "SELECT prova FROM Tabella1 WHERE ID = 1 "
    Rs.Open q, Cn, adOpenDynamic ', adCmdTable
    If Rs("prova").Value = True Then
        Rs("prova").Value = False
    Else
        MsgBox "Attivo"
    End If
    
    End Sub
    ...direi semplice.Ma non funziona.Mi restituisce "Errore 3251", e mi indica la linea
    codice:
    Rs("prova").Value = False
    Qualcuno mi sa indicare dov'è il problema?
    Grazie.

  2. #2
    Ragazzi nessuna idea?

  3. #3
    Utente di HTML.it L'avatar di cik
    Registrato dal
    Jul 2003
    Messaggi
    449
    hai provato a mettere un breakpoint e vedere rs cosa contiene?
    l'errore che descrizione ha?
    S'i fosse foco, arderei 'l mondo

  4. #4
    Utente di HTML.it L'avatar di Toeke
    Registrato dal
    Aug 2002
    Messaggi
    348

    Re: [VB6]Problema con recordset access

    Originariamente inviato da Stefanik
    codice:
    If Rs("prova").Value = True Then
        Rs("prova").Value = False
    Else
        MsgBox "Attivo"
    End If
    Non si capisce cosa tu voglia fare con questa parte di codice
    Se vuoi modificafe il valore di Rs("prova").Value da True a False non e' questa' istruzione esatta.
    E + esatta questa
    Rs.Update("Prova", false)

    altrimenti prova a spiegare meglio cio' che vuoi fare.
    Non e' che sia molto chiaro

    ^_^


    Toeke

  5. #5
    Penso che abbia ragione Toeke la tua espressione sembra non voler dire niente, se vuoi verificare che nel primo record del campo prova ci sia un valore prova a testarlo così:

    codice:
    Dim Cn As New ADODB.Connection
    Dim Rs As New ADODB.Recordset
    Dim q As String
    
    Private Sub Command1_Click()
    Cn.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=db2.mdb;"
    Cn.CursorLocation = adUseClient
    q = "SELECT * FROM Tabella1 WHERE ID = 1 "
    Rs.Open q, Cn, adOpenDynamic, adCmdTable
    Rs.Movefirst
    If Rs.Recordcount > 0 Then
        MsgBox "Records estratti n° " & Rs.Recordcount
    Else
        MsgBox "non ci sono record?"
    End If
    
    End Sub
    Non l'ho provato spero nella sintassi????

    Ciao

  6. #6
    Scusate ma effettivamente il codice che ho postato era un esempio di ciò che voglio realmente fare su un programma. Avevo fatto l'esempio a parte sperando che si capisse di più, ma mi sa che ho confuso un po' le idee.
    Comunque il problema l'ho risolto. Mancava la specifica "adCmdTable" quando apro il Rs...
    ...codice esatto..
    codice:
    CnControllo.Open "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=InfoManager.mdb;"
    CnControllo.CursorLocation = adUseClient
    qControllo = "SELECT * FROM FatturaTestata WHERE IDFattura = " & frmFatturazione.IDFatt
    RsControllo.Open qControllo, CnControllo, adOpenDynamic, adCmdTable
    If RsControllo("Scaricato").Value = False Then
        RsControllo("Scaricato") = True
        RsControllo.Update
        RsControllo.Close
        CnControllo.Close
    Sinceramente ho visto che bisogna aggiungere "adCmdTable" sull'MSDN on-line, facendo una ricerca per "errore 3251", ma non ne ho capito il motivo. O meglio non ho capito a cosa serve il adCmdTable.
    Grazie ragazzi.

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.