Messaggio di errore 3052 "Superato il numero di blocchi per la condivisione di file"

di il
4 risposte

Messaggio di errore 3052 "Superato il numero di blocchi per la condivisione di file"

Salve a tutti. Dopo avere eseguito il seguente codice mi appare errore 3052. Che significa e come risolvere? E' la prima volta che mi succede.

Public Sub TestIntermedio()

Dim rs As DAO.Recordset
Dim db As DAO.Database
Set db = CurrentDb
Set rs = db.OpenRecordset("DataTestIntermedio", dbOpenDynaset)
Dim OreAssegnate As Integer
Dim Materia As Variant
Dim Contatore As Integer
Dim IDCalendario As Variant
Dim Data As Date
Dim UltimoGiorno As String

Contatore = 0

Do Until rs.EOF



Contatore = Contatore + 1

rs.Edit
IDCalendario = rs.Fields("IDCalendario")
OreAssegnate = rs.Fields("Ore")
Materia = rs.Fields("IDMateria")
intero = Int(OreAssegnate / 2)

If Contatore = 1 Then
rs!UltimoGiorno = "INIZIALE"
ElseIf Contatore = Int(OreAssegnate / 2) And OreAssegnate > 30 Then
rs!UltimoGiorno = "INTERMEDIO"
ElseIf Contatore = OreAssegnate Then
rs!UltimoGiorno = "FINALE"
Contatore = 0
Else: rs!UltimoGiorno = ""
End If
rs.Update

rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Exit Sub

DoCmd.Close acQuery, "DataTestIntermedio"

End Sub

4 Risposte

  • Re: Messaggio di errore 3052 "Superato il numero di blocchi per la condivisione di file"

    Prima cosa devi imparare ad usare i TAG per il codice attivabili premendo il button CODE nell'header dell'editor dei messaggi.

    Puoi spiegare il motivo dell'ultima riga...?

    Quel codice andrebbe in transazione... ma per ora non è indispensabile.
  • Re: Messaggio di errore 3052 "Superato il numero di blocchi per la condivisione di file"

    Ciao Alex in effetti hai ragione. Guardando bene l'ultima riga di codice è inutile.
    Purtroppo credo di non avere compreso quando parli di Tag ed il fatto che il codice andrebbe in transazione. Puoi gentilmente spiegarmi che significa?
    Grazie sempre
  • Re: Messaggio di errore 3052 "Superato il numero di blocchi per la condivisione di file"

    vincoll ha scritto:


    Purtroppo credo di non avere compreso quando parli di Tag
    Significa che devi racchiudere il codice tra tag [ CODE ] e [ / CODE] (senza gli spazi, altrimenti non riusciresti a leggerlo adesso) in modo che il codice risulti formattato in questo modo (l'indentazione l'ho aggiunta io)
    Public Sub TestIntermedio()
    
    Dim rs As DAO.Recordset
    Dim db As DAO.Database
    
    Dim OreAssegnate As Integer
    Dim Materia As Variant
    Dim Contatore As Integer
    Dim IDCalendario As Variant
    Dim Data As Date
    Dim UltimoGiorno As String
    
    Set db = CurrentDb
    Set rs = db.OpenRecordset("DataTestIntermedio", dbOpenDynaset)
    
    Contatore = 0
    
    Do Until rs.EOF
    	Contatore = Contatore + 1
    
    	rs.Edit
    	IDCalendario = rs.Fields("IDCalendario")
    	OreAssegnate = rs.Fields("Ore")
    	Materia = rs.Fields("IDMateria")
    	intero = Int(OreAssegnate / 2)
    
    	If Contatore = 1 Then
    		rs!UltimoGiorno = "INIZIALE"
    	ElseIf Contatore = Int(OreAssegnate / 2) And OreAssegnate > 30 Then
    		rs!UltimoGiorno = "INTERMEDIO"
    	ElseIf Contatore = OreAssegnate Then
    		rs!UltimoGiorno = "FINALE"
    		Contatore = 0
    	Else: rs!UltimoGiorno = ""
    	End If
    	rs.Update
    	rs.MoveNext
    Loop
    rs.Close
    Set rs = Nothing
    
    Exit Sub
    
    DoCmd.Close acQuery, "DataTestIntermedio"
    
    End Sub

    vincoll ha scritto:


    ed il fatto che il codice andrebbe in transazione.
    Tante per capire di cosa si parla
    Dove richiami quella sub? Forse c'è un problema nel codice chiamante.
    Ci sono righe apparentemente inutili
    IDCalendario = rs.Fields("IDCalendario")
    ...
    Materia = rs.Fields("IDMateria")
    visto che non usi mai IDCalendario e Materia. Lo diventano anche le dichiarazione delle relative variabili come pure le due variabili Data e UltimoGiorno.
    Chiudi e distruggi anche db
    rs.Close
    db.Close
    Set rs = Nothing
    Set db = Nothing
    Si tratta di un db diviso in FE e BE? Multiutenza con accesso concorrente?
    Pubblica anche la SQL della query "DataTestIntermedio". Quanti record ha quella query quando "aperta normalmente"?
  • Re: Messaggio di errore 3052 "Superato il numero di blocchi per la condivisione di file"

    vincoll ha scritto:


    Purtroppo credo di non avere compreso quando parli di Tag ed il fatto che il codice andrebbe in transazione. Puoi gentilmente spiegarmi che significa?
    Basta leggere il REGOLAMENTO
    https://www.iprogrammatori.it/forum-programmazione/regolamento.php
    paragrafo: 7. Formattare il codice sorgente.

    Inoltre, il codice deve essere indentato correttamente:
    Indentazione
    https://it.wikipedia.org/wiki/Indentazion

    Inoltre, rispettare le regole del quoting (evitando l'overquoting)
    Citazione


Devi accedere o registrarti per scrivere nel forum
4 risposte