Newsgroup: it.comp.appl.access
Titolo: due recordset diversi nella routine

ciao a tutti
 
se in nella routine devo aprire due recordset differenti
� bene utilizzare due variabili deverse?
per esempio:
 
 Dim Rs As Recordset,
 Dim Rst As Recordset,
 
grazie 
 
 

 Dim Rst As Recordset,
 
Di solito s�, ma dipende un po' da come e quando usi le variabili.
In ogni caso (non solo) con due recordset, usa nomi descrittivi
e indica la biblioteca esplicitamente p.e.
 
Dim rsClienti As DAO.Recordset
Dim rsArticoli As DAO.Recordset
 
v.a. 
http://www.donkarl.com/it?FAQ7.11
 
 
-- 
Ciao
Karl
*********
Access FAQ:  
http://www.donkarl.com/it
 
 
 

 Ciao
ciao Karl
 
in questa routine ho anche molti codici ripetuti
che non so come evitare.
Posso postarla? 
 
 

 Posso postarla?
 
In pricipio puoi postare tutto che consente il tuo provider di NG.
Certo c'� sempre il rischio di non ricevere delle risposte su un post
con 600 righe di codice. :-)


 con 600 righe di codice. :-)
grzie Karl
sono 599
;-)
 
volevo qualche consiglio
 
            Dim blRet As Boolean
            Dim Rst As DAO.Recordset
            Dim Rs As DAO.Recordset, strSql As String, FieldName As String, 
My_Subject As String, Message As String
            Dim AttachDoc As String, CCstring, BCCstring
 
            If Me!IDAgC <> 0 Then
 
                Set Rst = Me!S_EmailAgC_1.Form.RecordsetClone
                Rst.FindFirst "Esclusa=0"
 
                If Not Rst.NoMatch Then
                strSql = "SELECT DISTINCT TbEmailAgC.*, 
UnisciValoriAgC([IdAgC]) AS Email " & _
                    "FROM TbEmailAgC Where IdAgC = " & Me!IDAgC
                Set Rs = CurrentDb.OpenRecordset(strSql, dbOpenDynaset)
 
                FieldName = Rs.Fields("Email")
 
                'Trasforma il Report in PDF
                blRet = ConvertReportToPDF(Me.lstRptName, vbNullString, _
                Me.lstRptName.Value & ".pdf", False, True, 150, "", "", 0, 
0, 0)
 
                My_Subject = "Conferma"
                Message = ""
                AttachDoc = "C:\Conferma.pdf"
                CCstring = ""
                BCCstring = ""
 
                SendingMailFromTable Rs, FieldName, My_Subject, Message, 
AttachDoc, CCstring, BCCstring
 
                Else
 
                'Trasforma il Report in PDF
                blRet = ConvertReportToPDF(Me.lstRptName, vbNullString, _
                Me.lstRptName.Value & ".pdf", False, True, 150, "", "", 0, 
0, 0)
                End If
 
            Else
 
                Set Rst = Me!S_EmailClienti_1.Form.RecordsetClone
                Rst.FindFirst "Esclusa=0"
 
                If Not Rst.NoMatch Then
                strSql = "SELECT DISTINCT TbEmailClienti.*, 
UnisciValoriClienti([IdCliente]) AS Email FROM TbEmailClienti Where 
IdCliente = " & Me!IdCliente
                Set Rs = CurrentDb.OpenRecordset(strSql, dbOpenDynaset)
 
                FieldName = Rs.Fields("Email")
 
                'Trasforma il Report in PDF
                blRet = ConvertReportToPDF(Me.lstRptName, vbNullString, _
                Me.lstRptName.Value & ".pdf", False, True, 150, "", "", 0, 
0, 0)
 
                My_Subject = "Conferma"
                Message = ""
                AttachDoc = "C:\Conferma.pdf"
                CCstring = ""
                BCCstring = ""
 
                SendingMailFromTable Rs, FieldName, My_Subject, Message, 
AttachDoc, CCstring, BCCstring
 
                Else
 
                'Trasforma il Report in PDF
                blRet = ConvertReportToPDF(Me.lstRptName, vbNullString, _
                Me.lstRptName.Value & ".pdf", False, True, 150, "", "", 0, 
0, 0)
                End If
            End If
 
        Rst.Close: Set Rst = Nothing
        Rs.Close: Set Rs = Nothing 
 
 

 ... volevo qualche consiglio...
 
' ****************** START ***********************
 
Dim rsCheck As DAO.Recordset, rsData As DAO.Recordset
Dim strSql As String
Dim strFld As String, strSubject As String, strMsg As String
Dim strAttach As String, strCC As String, strBCC As String
 
'Trasforma il Report in PDF
ConvertReportToPDF Me!lstRptName, vbNullString, _
    Me!lstRptName.Value & ".pdf", False, True, 150, "", "", 0, 0, 0
 
If Me!IDAgC <> 0 Then
    Set rsCheck = Me!S_EmailAgC_1.Form.RecordsetClone
Else
    Set rsCheck = Me!S_EmailClienti_1.Form.RecordsetClone
End If
 
rsCheck.FindFirst "Esclusa=0"
 
If Not rsCheck.NoMatch Then
    If Me!IDAgC <> 0 Then
        strSql = "SELECT DISTINCT *, UnisciValoriAgC(IdAgC) AS Email" & _
                     " FROM TbEmailAgC" & _
                     " WHERE IdAgC = " & Me!IDAgC
    Else
        strSql = "SELECT DISTINCT *, UnisciValoriClienti(IdCliente) AS 
Email" & _
                      " FROM TbEmailClienti" & _
                      " WHERE IdCliente = " & Me!IdCliente
    End If
 
    Set rsData = CurrentDb.OpenRecordset(strSql, dbOpenDynaset)
 
    strFld = rsData.Fields("Email")
 
    strSubject = "Conferma"
    strMsg = ""
    strAttach = "C:\Conferma.pdf"
    strCC = ""
    strBCC = ""
 
    SendingMailFromTable rsData, strFld, strSubject, strMsg, strAttach, 
strCC, strBCC
 
End If
 
rsCheck.Close: Set rsCheck = Nothing
rsData.Close: Set rsData = Nothing
 
' ****************** END ***********************


 ha scritto nel messaggio 
news:bjo2d9...@mid.individual.net...

ciao Karl e grazie
 
il problema � il codice che trasforma il report in Pdf
 
            'Trasforma il Report in PDF
            ConvertReportToPDF Me!lstRptName, vbNullString, _
            Me!lstRptName.Value & ".pdf", False, True, 150, "", "", 0, 0, 0
 
nel punto dove l'hai inserto, da l'errore
l'oggetto a cui si fa riferimento nell'espressione � stato chiuso o 
eliminato:
 
 
se lo metto in questo punto:
 
            Else
                strSql = "SELECT DISTINCT *, UnisciValoriClienti(IdCliente) 
AS Email" & _
                        " FROM TbEmailClienti" & _
                        " WHERE IdCliente = " & Me!IdCliente
            End If
 
            Set rsData = CurrentDb.OpenRecordset(strSql, dbOpenDynaset)
 
            'Trasforma il Report in PDF
            ConvertReportToPDF Me!lstRptName, vbNullString, _
            Me!lstRptName.Value & ".pdf", False, True, 150, "", "", 0, 0, 0
 
 
            strFld = rsData.Fields("Email")
 
ho quest'errore in assenza di email nel cliente:
 
variabile oggetto o variabile del blocco With non impostata 
 
 

 variabile oggetto o variabile del blocco With non impostata
ciao Karl
allego modulo per invio email:
 
Public Sub SendingMailFromTable(Rs As DAO.Recordset, _
           rsData As String, _
           strSubject As String, _
           strMsg As String, _
           strAttach As String, _
           Optional strCC, _
           Optional strBCC)
'
' References:
' ===========
' Visual Basic for Applications
' Microsoft Access 11.0 Object Library
' Microsoft DAO 3.60 Object Library
' Microsoft Outlook 11.0 Object Library
'
Dim olApp As New Outlook.Application
Dim NewMail As Outlook.MailItem
 
'Do Until RS.EOF
Set NewMail = olApp.CreateItem(olMailItem)
    With NewMail
        .To = rsData
        .Subject = strSubject
        .Body = strMsg
        .Attachments.Add strAttach
        .CC = strCC
        .BCC = strBCC
        .Send
    End With
Set NewMail = Nothing
    'RS.MoveNext
'Loop
 
End Sub 
 
 

 ha scritto nel messaggio 
news:52d791b9$0$23119$4faf...@reader2.news.tin.it...

ho corretto altri 2 errori nel modulo,  ma ho sempre gli stessi errori
 
Public Sub SendingMailFromTable(RsData As DAO.Recordset, _
           strFld As String, _
           strSubject As String, _
           strMsg As String, _
           strAttach As String, _
           Optional strCC, _
           Optional strBCC)
'
' References:
' ===========
' Visual Basic for Applications
' Microsoft Access 11.0 Object Library
' Microsoft DAO 3.60 Object Library
' Microsoft Outlook 11.0 Object Library
'
Dim olApp As New Outlook.Application
Dim NewMail As Outlook.MailItem
 
'Do Until RS.EOF
Set NewMail = olApp.CreateItem(olMailItem)
    With NewMail
        .To = strFld


 ha scritto nel messaggio 
news:52d79e97$0$23119$4faf...@reader2.news.tin.it...

ciao Karl grazie 1000
ho risolto tutto, tranne che per il Pdf.
 
perch� se inserisco questo codice
all'inizio
            'Trasforma il Report in PDF
            blRet = ConvertReportToPDF(Me.lstRptName, vbNullString, _
            Me.lstRptName.Value & ".pdf", False, True, 150, "", "", 0, 0, 0)
ho poi l'errore:
l'oggetto a cui si fa riferimento nell'espressione � stato chiuso o 
eliminato.
 
 

 eliminato.
 
Nel mio consiglio ho tolto l'assegnazione alla variabile perch�
non usi il valore di ritorno. Mi sembrano anche troppi parametri.
Di solito basta:
 
ConvertReportToPDF Me!lstRptName, vbNullString, _
    "QuiSarebbeMeglioUnPercorso" & Me!lstRptName & ".pdf"
 
Per� suppongo che l'errore succeda altrove e puoi solo debuggarlo
tu perch� sul mio sistema funziona cos�. Se non trovi l'errore e prima
ha funzionato puoi sempre ritornare al vecchio codice.


 ha scritto nel messaggio 
news:bjpu8h...@mid.individual.net...

Ciao Karl
 
puoi postare il codice del modulo PDF che usi?
Grazie
 
 

 puoi postare il codice del modulo PDF che usi?
 
?
Sarebbe molto lungo e non serve, perch� certamente � il solito
codice di Stephen Lebans che usa tutto il mondo (almeno fino
a A07) ed anche tu.



a ok
ma volevo capire perch� creato il pdf mi salta
dandomi errore.
l'oggetto a cui si fa riferimento nell'espressione � stato chiuso o
eliminato.
 
un motivo ci sar�!
 
 

 ha scritto nel messaggio 
news:52d81923$0$1367$4faf...@reader1.news.tin.it...

ciao Karl
che versione di Access usi?
grazie 
 
 

 che versione di Access usi?
 
Quasi tutte.
Il tool di Stephen uso soprattutto con AX e A03.


 ha scritto nel messaggio 
news:bjt07p...@mid.individual.net...

grazie 
 
 

 ha scritto nel messaggio 
news:52d9862d$0$1368$4faf...@reader1.news.tin.it...

ciao Karl
come faccio a modificare il percorso dove far salvare il PDF? 
 
 

 come faccio a modificare il percorso dove far salvare il PDF?
 
Come tu e Stephen: con una variabile che prende il percorso o da
un riferimento ad und campo/controllo o da un file dialog.


 Ciao
ciao Karl
� perch� non riesco a trovarlo