Newsgroup: it.comp.lang.visual-basic
Titolo: Il db mi manda ....

Usando VB connesso ad Access ho avuto il seguente messaggio di
errore ........ :
(-2147467259
)
Le informazioni sulla tabella di base non sono sufficienti per effettuare
l'aggiornamento ............
qualcuno sa dirmi perchè non riesce ad aggiornare il db ....
        Dim strSelect2 As String
        strSelect2 = "SELECT Transazioni2.IDTransazione,
Transazioni2.CodiceProdotto, " _
                    & "Transazioni2.VettoreSpese,
Transazioni2.FermoMacchina, Transazioni2.Spostamenti, " _
                    & "Transazioni2.UnitaMisura, Transazioni2.QuantitàV,
Transazioni2.NoleggioPompa, " _
                    & "Transazioni2.SpostamenoPompa,
Transazioni2.FlagFatturato, " _
                    & "Transazioni2.TipoFatturazione,
Transazioni2.RiferimentoFatt " _
                & "FROM Transazioni2 " _
                & "WHERE (((Transazioni2.IDTransazione)=" &
tmpBollaCogefa!IDTransazione & ") AND " _
                    & "((((Transazioni2.FlagFatturato)=False) Or
(Transazioni2.FlagFatturato) Is Null) AND " _
                    & "(((Transazioni2.TipoFatturazione)=False) Or
(Transazioni2.TipoFatturazione) Is Null) AND " _
                    & "(((Transazioni2.RiferimentoFatt)=" & StVirg & StVirg
& ") Or " _
                    & "(Transazioni2.RiferimentoFatt) Is Null)));"
        Set tmpBolla = Connection.Open_Query(strSelect2, dbConnection)
        If tmpBolla.EOF Then
            tmpBolla.AddNew
            tmpBolla!IDTransazione = tmpBollaCogefa!IDTransazione
            tmpBolla!CodiceProdotto = ""
            tmpBolla!VettoreSpese = False
            tmpBolla!FermoMacchina = 0
            tmpBolla!Spostamenti = 0
            tmpBolla!UnitaMisura = ""
            tmpBolla!QuantitàV = 0
            tmpBolla!NoleggioPompa = False
            tmpBolla!SpostamenoPompa = 0
        End If
            tmpBolla!FlagFatturato = VarBool
            tmpBolla!TipoFatturazione = VarTipoFatt
            tmpBolla!RiferimentoFatt = VarRiferimentoFatt
        tmpBolla.Update
        tmpBolla.Close
notare che ho estratto tutti i campi della tabella e che l'SQL è corretto
... (mi sembra) ........
grazie in anticipo per l'attenzione ...

Il problema non si presenta più se non passo un SQL al DataSource ma il nome
della tabella ...
        strSelect2 = "Transazioni2"
----------------------------
ho quindi cercato di utilizzare Recordset.Filter per selezionare i record
che mi interessano...
ho cercato un esempio di utilizzo di Filter ed ho trovato il seguente:
------------------
Public Function FilterField(rstTemp As ADODB.Recordset, _
    strField As String, strFilter As String) As ADODB.Recordset
    ' Applicare un filtro all'oggetto Recordset specificato, quindi
    ' aprire un nuovo oggetto Recordset.
    rstTemp.Filter = strField & " = '" & strFilter & "'"
    Set FilterField = rstTemp
End Function
------------------
ho quindi scritto la funzione che mi interessava:
------------------
Public Function FilterField(tmpRecordset As ADODB.Recordset, _
    strCondition As String) As ADODB.Recordset
    'es: strCondition = ((Transazioni2.IDTransazione)=" &
tmpBollaCogefa!IDTransazione & ")"
    tmpRecordset.Filter = strCondition
    Set FilterField = tmpRecordset
End Function
------------------
ma mi manda nuovamente a quel paese .......
dicendo che Filter non vuole una stringa ..... (almeno credo)
saluti a tutti ...