Newsgroup: it.comp.lang.visual-basic
Titolo: Sempre ADO...Inizio ad Odiarlo paura!

E si... Ancora io...
e bene, ho risolto i vecchi problemi postati prima... Ho ancora dei problemi
sulla procedura DELETE e sull'Evento REPOSITION che su ado si chiama
WillMove...
Al primo problema ci penserň, ma il secondo mi fa vero inca**re! Con DAO,
ogni volta che mi spostavo di recrd lui lanciava un Codice situato in una
Private Sub per calcolarmi la giacenza articoli Carico-Scarico e Prezzi, con
in piů nella caption la scritto Articolo: x di xx.
Con ADO niente da fare... La caption č sballata, mi da valori inprecisi le
prime volte che mi sposto.Mentre per i calcoli, mi fa vedere i risultati del
record precendente sul record attuale...
Ne ho da imparare su ADO vero?
Grazie per l'aiuto, a presto...
max

 vedere i risultati del record precendente sul record attuale...
WillMove, come suggerisce il nome, viene lanciato ogni volta che il
recordset _sta per_ muoversi, questo vuol dire che non sě č ancora mosso su
un record differente, ed č quindi solo giusto che i calcoli ti sembrino
sballati... credo che l'evento che cerchi sia MoveComplete.
ciao, assa.
-- 
gosclient: 
http://gosclient.altervista.org/
join the mailing list: 
http://groups.yahoo.com/group/gosclient/join
icq: #215876894

 ha scritto

Private Sub Adodc1_MoveComplete(ByVal adReason _
    As adodb.EventReasonEnum, ByVal pError As adodb.Error, _
    adStatus As adodb.EventStatusEnum, ByVal pRecordset As adodb.Recordset)
    On Error Resume Next
    With Adodc1.Recordset
        frmMain.SB.Panels(1) = "Movies: " & .AbsolutePosition & " / " &
.RecordCount
    End With
End Sub
hth, j.

 ha scritto nel messaggio
news:cfvv59$hrt$1...@newsread.albacom.net...


 mi incasina tutto... la caption č OK, ma i calcoli sono sempre
sbagliati...
hmmm.....
fai un debug.print degli id interessati al ricalcolo durante gli spostamenti
e cerca di capire cosa avviene quando.
ciao, j.



wrote:

Inserisci una tabella (Tabprova) con 2 campi "codice - contatore" e
"descrizione - testo) fai copia del modulo seguente, correggi la
connessione alla fonte dati, verifica il funzionamento degli eventi
VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   2988
   ClientLeft      =   48
   ClientTop       =   432
   ClientWidth     =   6012
   LinkTopic       =   "Form1"
   ScaleHeight     =   2988
   ScaleWidth      =   6012
   StartUpPosition =   3  'Windows Default
   Begin VB.CommandButton cmdExecute 
      Caption         =   "Execute"
      Height          =   372
      Left            =   3960
      TabIndex        =   9
      Top             =   2400
      Width           =   852
   End
   Begin VB.TextBox txtMsg 
      Height          =   288
      Left            =   1320
      TabIndex        =   8
      Top             =   1320
      Width           =   4452
   End
   Begin VB.CommandButton cmdLast 
      Caption         =   "Last"
      Height          =   372
      Left            =   2880
      TabIndex        =   7
      Top             =   2400
      Width           =   732
   End
   Begin VB.CommandButton cmdNext 
      Caption         =   "Succ"
      Height          =   372
      Left            =   2040
      TabIndex        =   6
      Top             =   2400
      Width           =   732
   End
   Begin VB.CommandButton cmdPrev 
      Caption         =   "Prec"
      Height          =   372
      Left            =   1080
      TabIndex        =   5
      Top             =   2400
      Width           =   852
   End
   Begin VB.CommandButton cmdInizio 
      Caption         =   "Inizio"
      Height          =   372
      Left            =   120
      TabIndex        =   4
      Top             =   2400
      Width           =   852
   End
   Begin VB.TextBox txtDescr 
      Height          =   288
      Left            =   2760
      TabIndex        =   2
      Top             =   240
      Width           =   3012
   End
   Begin VB.TextBox txtCodice 
      Height          =   288
      Left            =   1320
      TabIndex        =   1
      Top             =   240
      Width           =   1332
   End
   Begin VB.Label Label2 
      Caption         =   "Messaggio:"
      Height          =   252
      Left            =   120
      TabIndex        =   3
      Top             =   1320
      Width           =   972
   End
   Begin VB.Label Label1 
      Caption         =   "Codice:"
      Height          =   252
      Left            =   120
      TabIndex        =   0
      Top             =   240
      Width           =   972
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Private WithEvents rs As ADODB.Recordset
Attribute rs.VB_VarHelpID = -1
Private WithEvents cnn As ADODB.Connection
Attribute cnn.VB_VarHelpID = -1
Enum Naviga
    Frec = 0
    Prec = 1
    Nrec = 2
    Lrec = 3
End Enum
Private Sub cmdExecute_Click()
    cnn.Execute "Delete * from tabprova where tabprova.codice = 0"
End Sub
Private Sub cmdInizio_Click()
    NavigaRecord Naviga.Frec
End Sub
Private Sub cmdLast_Click()
    NavigaRecord Naviga.Lrec
End Sub
Private Sub cmdNext_Click()
    NavigaRecord Naviga.Nrec
End Sub
Private Sub cmdPrev_Click()
    NavigaRecord Naviga.Prec
End Sub
Private Sub Form_Load()
    Set rs = New ADODB.Recordset
    Set cnn = New ADODB.Connection
    cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=" & App.Path & "\dati.mdb;Persist Security Info=False"
    cnn.Open
    rs.Open "tabprova", cnn, adOpenStatic, adLockOptimistic
    NavigaRecord Naviga.Frec
End Sub
Private Sub Form_Unload(Cancel As Integer)
    rs.Close
    Set rs = Nothing
    cnn.Close
    Set cnn = Nothing
End Sub
Private Sub rs_WillMove(ByVal adReason As ADODB.EventReasonEnum, _
                                adStatus As ADODB.EventStatusEnum, _
                                ByVal pRecordset As ADODB.Recordset)
    'PrintStatus "WillMove"
    PrintReason adReason
End Sub
Private Sub rs_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, _
                                ByVal pError As ADODB.Error, _
                                    adStatus As ADODB.EventStatusEnum,
_
                                ByVal pRecordset As ADODB.Recordset)
    'PrintStatus "MoveComplete"
    PrintReason adReason
End Sub
Sub PrintStatus(msg As String)
    txtMsg = msg
End Sub
Sub NavigaRecord(record As Naviga)
    If record = Naviga.Frec Then
        If Not rs.EOF Or Not rs.BOF Then rs.MoveFirst
    End If
    If record = Naviga.Nrec Then
        If rs.EOF = False Then rs.MoveNext
        If rs.EOF = True And rs.BOF = False Then rs.MoveLast
    End If
    If record = Naviga.Prec Then
        If rs.BOF = False Then rs.MovePrevious
        If rs.BOF = True And rs.EOF = False Then rs.MoveFirst
    End If
    If record = Naviga.Lrec Then
        If Not rs.EOF Or Not rs.BOF Then rs.MoveLast
    End If
    If Not rs.EOF And Not rs.BOF Then
        txtCodice = rs.Fields("codice")
        txtDescr = rs.Fields("descr")
    End If
End Sub
Private Sub cnn_WillExecute(Source As String, _
                CursorType As ADODB.CursorTypeEnum, _
                LockType As ADODB.LockTypeEnum, _
                Options As Long, _
                adStatus As ADODB.EventStatusEnum, _
                ByVal pCommand As ADODB.Command, _
                ByVal pRecordset As ADODB.Recordset, _
                ByVal pConnection As ADODB.Connection)
    PrintStatus "WillExecute"
    MsgBox "will Execute"
End Sub
Private Sub cnn_ExecuteComplete(ByVal RecordsAffected As Long, _
                                ByVal pError As ADODB.Error, _
                        adStatus As ADODB.EventStatusEnum, _
                        ByVal pCommand As ADODB.Command, _
                        ByVal pRecordset As ADODB.Recordset, _
                        ByVal pConnection As ADODB.Connection)
    PrintStatus "ExecuteComplete"
End Sub
Private Sub cnn_WillConnect(ConnectionString As String, _
                            UserID As String, _
                            Password As String, _
                            Options As Long, _
                            adStatus As ADODB.EventStatusEnum, _
                            ByVal pConnection As ADODB.Connection)
    PrintStatus "WillConnect"
    MsgBox "willconnect"
End Sub
Private Sub PrintReason(adReason As ADODB.EventReasonEnum)
    Select Case (adReason)
        Case adRsnAddNew:
            PrintStatus "AddNew"
        Case adRsnClose:
            PrintStatus "Close"
        Case adDelete:
            PrintStatus "Delete"
        Case adRsnFirstChange:
            PrintStatus "First Change"
        Case adRsnMove:
            PrintStatus "Move"
        Case adRsnMoveFirst:
            PrintStatus "MoveFirst"
        Case adRsnMoveLast:
            PrintStatus "MoveLast"
        Case adRsnMoveNext:
            PrintStatus "MoveNext"
        Case adRsnMovePrevious:
            PrintStatus "MovePrevious"
        Case adRsnRequery:
            PrintStatus "Requery"
        Case adRsnResynch:
            PrintStatus "Resynch"
        Case adRsnUndoAddNew:
            PrintStatus "Undo AddNew"
        Case adRsnUndoDelete:
            PrintStatus "Undo Delete"
        Case adRsnUndoUpdate:
            PrintStatus "Undo Update"
        Case adRsnUpdate:
            PrintStatus "Update"
        End Select
End Sub
=======================================================================
Se mi vuoi scrivere togli le maiuscole
Sveltolampo 
ctenizaMALED...@hotmail.com
=======================================================================

 >Con ADO niente da fare... La caption è sballata, mi da valori inprecisi



[cut]
...mi par di capire che qualcosina hai studiato in questi mesi...
...ma non usare gli adodc... ...dà retta a zio...    ;-P
ciao
ugo
p.s.
come va da queste parti?

 come va da queste parti?
toh, lo çietto desaparecido :)
va che abbiamo messo su 2003 server, e io, memore del dao/access che si
polverizzava nel 2000, ho pensato bene di darmi una mossa, si sa mai, meglio
perdere sudore prima che sangue dopo:)
pero' che palle il find invece del seek :P
coi controlli data, solita storia. se li si usa in modo ragionevole,
servono. il problema maggiore che trovo e' la griglia che non tiene la riga
di evidenziazione, ed e' decisamente scomoda, uno non capisce dov'e'. per il
resto, ancora muovo tabelle piccole, quindi il dc basta e in compenso
semplifica la vita.
mo' devo mettere ordine in parecchie decine di migliaia di tiff e jpeg,
vediamo se ce la fa. ti so dire...
tu tutto bene ?
chao (manu), a.