Funzione di aggregazione non recupera nomi parole con apostrofate.

di il
3 risposte

Funzione di aggregazione non recupera nomi parole con apostrofate.

Buongiorno,
Essendo relativamente nuovo a vba non riesco ad apportare una modifica alla seguente funzione di aggregazione dati che mi permetta di visualizzare anche i nominativi del mio archivio che contengano un'apostrofo al loro interno. Vi sarei infinitamente grato se mi potreste dare una mano ad risolvere questo problema, grazie!

Funzione

Public Function FixTable() As Boolean
On Error Resume Next

Dim db As DAO.Database, rst As DAO.Recordset, sSQL As String

Dim strID As String, strNome As String

Set db = CurrentDb()
Dim strSQL As String
Dim name As String
strSQL = "DELETE * FROM tblCopy"
CurrentDb.Execute strSQL


sSQL = "SELECT ID, Nome FROM qryAggregate " _
& "ORDER BY ID, Nome ASC"
Set rst = db.OpenRecordset(sSQL, dbOpenSnapshot)

If Not rst.BOF And Not rst.EOF Then
rst.MoveFirst
strID = rst!ID
strNome = rst!Nome

rst.MoveNext
Do Until rst.EOF
If strID = rst!ID Then
strNome = strNome & ", " & rst!Nome
Else
sSQL = "INSERT INTO tblCopy (ID, Nome) " _
& "VALUES('" & strID & "','" & strNome & "')"
db.Execute sSQL
strID = rst!ID
strNome = rst!Nome
End If
rst.MoveNext
Loop

' Insert Last Record
sSQL = "INSERT INTO tblCopy (ID, Nome) " _
& "VALUES('" & strID & "','" & strNome & "')"
db.Execute sSQL
End If

Set rst = Nothing
Set db = Nothing



End Function

3 Risposte

  • Re: Funzione di aggregazione non recupera nomi parole con apostrofate.

    Prima cosa utilizza i TAG per il codice... così risulta poco leggibile...!!! hai il Pulsantino con scritto Code in alto nel menù formattazione ...

    Secondo se cerchi un pochetto... trovi le risposte, questo argomento è sempre molto trattato...
    Esempio:
    http://www.iprogrammatori.it/forum-programmazione/access/problemi-apostrofo-apertura-maschera-t27594.html
  • Re: Funzione di aggregazione non recupera nomi parole con apostrofate.

    Grazie mille Alex per i suggerimenti. Ho cercato nel forum e come avevi previsto ho trovato un bel po' di materiale sull'argomento. Nonostante questo, a causa della mia limitata conoscenza del VBA, non riesco a modificare correttamente la funzione di aggregazione dati che riporto nuovamente. Come mi hai suggerito, questa volta, l'ho inserita all'interno del tag <code> per una migliore la comprensione. Sono arrivato alla conclusione che il problema risieda verso la fine della funzione ma non riesco ad andare avanti. Perciò vi chiedo gentilmente un aiuto per risolvere questo problema e capire dove sto sbagliando. Vi ringrazio Anticipatamente,
    Daniele

    Public Function FixTable() As Boolean
    On Error Resume Next
    
    Dim db As DAO.Database, rst As DAO.Recordset, sSQL As String
    
    Dim strID As String, strNome As String
    
    Set db = CurrentDb()
    Dim strSQL As String
    Dim name As String
    strSQL = "DELETE * FROM tblCopy"
    CurrentDb.Execute strSQL
    
    
    sSQL = "SELECT ID, Nome FROM qryAggregate " _
    & "ORDER BY ID, Nome ASC"
    Set rst = db.OpenRecordset(sSQL, dbOpenSnapshot)
    
    If Not rst.BOF And Not rst.EOF Then
    rst.MoveFirst
    strID = rst!ID
    strNome = rst!Nome
    
    rst.MoveNext
    Do Until rst.EOF
    If strID = rst!ID Then
    strNome = strNome & ", " & rst!Nome
    Else
    sSQL = "INSERT INTO tblCopy (ID, Nome) " _
    & "VALUES('" & strID & "','" & strNome & "')"
    db.Execute sSQL
    strID = rst!ID
    strNome = rst!Nome
    End If
    rst.MoveNext
    Loop
    
    ' Insert Last Record
    sSQL = "INSERT INTO tblCopy (ID, Nome) " _
    & "VALUES('" & strID & "','" & strNome & "')"
    db.Execute sSQL
    End If
    
    Set rst = Nothing
    Set db = Nothing
    
    
    
    End Function
  • Re: Funzione di aggregazione non recupera nomi parole con apostrofate.

    Secondo me, tu hai bena altre cose da sistemare... in ogni caso ad occhio ID è un campo Long e non Testo... quindi togli gli apicetti...
Devi accedere o registrarti per scrivere nel forum
3 risposte