Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente bannato L'avatar di primeros
    Registrato dal
    Sep 2010
    Messaggi
    20

    Azzerare il contatore di una tabella

    Ciao ragazzi ho la necessità di copiare (e questo è fatto) ed azzerare il contatore della tabella "ARCHIVIO" con la relativa cancellazione di tutti i records e questo non mi funziona bene vi posto il codice mi potete dire dove sbaglio? Razzzzie mille

    codice:
    StrCriterio = "select * from ARCHIVIO"
    Set Rst = CurrentDb.OpenRecordset("StrCriterio", dbOpenDynaset)
    
    'CANCELLA TUTTI I RECORD PRESENTI
    Rst.MoveFirst
    Do Until Rst.EOF
        Rst.EditMode (Qui mi dice "Errore di compilazione: Utilizzo non valido di property"
        Rst.Delete
    Rst.MoveNext
    Loop
    
    'AZZERA IL CONTATORE CREANDO UN RECORD TRANSITORIO
    Rst.AddNew
    Rst!ID = 0
    Rst.Update
    
    'ELIMINA IL RECORD TRANSITORIO
    Rst.MoveFirst
    Do Until Rst.EOF
        Rst.EditMode
        Rst.Delete
    Rst.MoveNext
    Loop
        
    End Sub

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Cosa vorrebbe dire "non mi funziona bene"?
    Vengono sollevati degli errori? Quali?
    Il risultato non è quello che ti aspetti? (e cosa succede, invece)?

    Inoltre, in futuro, usa i tag CODE per il codice (vedi Regolamento interno).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente bannato L'avatar di primeros
    Registrato dal
    Sep 2010
    Messaggi
    20

    Azzera contatore

    Ciao LeleFT, ti ringrazio del tuo interessamento, scusami se il mio messaggio non è del tutto conforme al regolamento, provo ad adeguarmi.
    Il sottostante codice viene inserito su una maschera di ACCESS 2003 (Routine evento su apertura) Dove ho messo la faccina il codice si plocca e mi da l'errore che ho messo tra parentesi.
    Ti ringrazio del tuo aiuto


    CODE
    StrCriterio = "select * from ARCHIVIO"
    Set Rst = CurrentDb.OpenRecordset("StrCriterio", dbOpenDynaset)

    'CANCELLA TUTTI I RECORD PRESENTI
    Rst.MoveFirst
    Do Until Rst.EOF
    Rst.EditMode (Qui mi dice "Errore di compilazione: Utilizzo non valido di property")
    Rst.Delete
    Rst.MoveNext
    Loop

    'AZZERA IL CONTATORE CREANDO UN RECORD TRANSITORIO
    Rst.AddNew
    Rst!ID = 0
    Rst.Update

    'ELIMINA IL RECORD TRANSITORIO
    Rst.MoveFirst
    Do Until Rst.EOF
    Rst.EditMode
    Rst.Delete
    Rst.MoveNext
    Loop

    End Sub
    /CODE

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Mah....

    Il moderatore ti ha già ripreso indicandoti che devi usare il tag CODE, ma non l'hai fatto. Così come non hai letto il Regolamento dove è indicato come fare (punto 6).

    Se l'avessi fatto non avresti commesso di nuovo lo stesso errore.

    Invece hai postato lo stesso identico codice.

    Non ho parole...

  5. #5
    Utente bannato L'avatar di primeros
    Registrato dal
    Sep 2010
    Messaggi
    20

    1.000.000 di parole non valgono un esempio

    Ciao gibra senza aprire una discussione del piffero ma se io non ho capito quello che devo fare è meglio non fare nulla. Per tua notizia ho letto il regolamento e per mia disgrazia non ho capito quello che devo fare... sai a volte succede ma non mi ucciderò per questo.
    Se tu invece avessi adoperato tutte quelle parole usate prima di "non ho parole" per spiegarmi quello che devo fare sono sicuro che mi avresti aiutato di più. ti ringrazio comunque e.. scusami lo sfogo.

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244

    Re: 1.000.000 di parole non valgono un esempio

    Originariamente inviato da primeros
    Ciao gibra senza aprire una discussione del piffero ma se io non ho capito quello che devo fare è meglio non fare nulla. Per tua notizia ho letto il regolamento e per mia disgrazia non ho capito quello che devo fare... sai a volte succede ma non mi ucciderò per questo.
    Se tu invece avessi adoperato tutte quelle parole usate prima di "non ho parole" per spiegarmi quello che devo fare sono sicuro che mi avresti aiutato di più. ti ringrazio comunque e.. scusami lo sfogo.
    Mi spiace che tu regisca in maniera completamente sbagliata.
    Ma concorderai che sbagliare è umano, ma perseverare è diabolico.

    Per sapere come usare il tag CODE non occorre una laurea, basta leggere il Regolamento.

    Inoltre, nell'editor del messaggio hai il tasto ANTEPRIMA (l'hai visto?), che mostra come sarà formattato il tuo post, e questo ti aiuta a capire se il risultato è quello che dovrebbe essere.

    In ogni caso, nonostante non sia un compito di noi 'membri' spiegare come si usa il forum ( già te l'ha spiegato il moderatore), non mi pare tu abbia scritto che non riesci ad usare il tag CODE, ed invece di rispondere male, avresti dovuto chiedere aiuto su questo!

    Se l'avessi fatto, te lo avremmo indicato passo-passo.
    Come farò ora:

    Premessa
    Sopra la finestra dell'editor del messaggio, sono presenti dei pulsanti 'piatti' che servono a formattare i testi con vari attributi; vedi il pulsante CODE ?

    Ok, di norma si fa così:
    - con il mouse si seleziona la parte di testo da formattare (nel tuo caso il codice)
    - poi si preme il pulsante CODE
    - il testo sarà racchiuso tra 2 tag di inizio e fine formattazione:
    [-CODE-] e [-/CODE-]
    (ho aggiunto volontariamente i trattini per farti vedere cosa è un tag.
    In effetti, i Tag puoi anche scriverli manualmente, senza usare il pulsante, come faccio io.

    Il codice formattato con CODE mantiene anche l'identazione così che il codice stesso sia leggibile tanto quanto avviene nell'editor originale.
    Il codice non formattato non è sempre chiaramente leggibile (interpretabile) quindi molti utenti non lo prendono nemmeno in considerazione, e perciò non rispondono neppure.

    Quindi è tua convenienza fare in modo di rendere più chiaro e leggibile possibile sia il codice che il messaggio da renderlo comprensibile a più utenti, così avrai più probabilità che qualcuno risponda al tuo quesito.
    Se le informazioni che dai sono poche e poco comprensibili, è normale che chi legge non se la prende più di tanto, non avendo voglia e/o tempo di mettersi lì per capire quello che non è spiegato.


    Alcuni browser non permettono di applicare un TAG come descritto sopra, e invece di aggiungere i 2 tag di inizio e fine, cancellano il testo! C'è l'alternativa:
    - posizioni il cursore all'inizio del testo da formattare
    - premi il pulsante del tag (viene aggiunto il tag di inizio)
    - posizioni il cursore alla fine del testo da formattare
    - premi il pulsante X Chiudi questo Tag

    Se hai problemi, la prossima volta chiedi aiuto, prima di rispondere sgarbatamente.


  7. #7
    Utente bannato L'avatar di primeros
    Registrato dal
    Sep 2010
    Messaggi
    20

    Habemus papam (forse)

    Forse è andata, comunque cera qualcosa che non andava adesso sono su un altro pc.
    Gibra ti chiedo scusa, e ti posso assicurare che il mio sfogo non era cattivo era solo di risentimento in quanto mi è sembrata una presa in giro, scusami di nuovo.
    ragà vi ringrazio anticipatamente dell'aiuto che potete darmi. Ciao.

    codice:
    StrCriterio = "select * from ARCHIVIO"
    Set Rst = CurrentDb.OpenRecordset("StrCriterio", dbOpenDynaset)
    
    'CANCELLA TUTTI I RECORD PRESENTI
    Rst.MoveFirst
    Do Until Rst.EOF
        Rst.EditMode (Qui mi dice "Errore di compilazione: Utilizzo non valido di property"
        Rst.Delete
    Rst.MoveNext
    Loop
    
    'AZZERA IL CONTATORE CREANDO UN RECORD TRANSITORIO
    Rst.AddNew
    Rst!ID = 0
    Rst.Update
    
    'ELIMINA IL RECORD TRANSITORIO
    Rst.MoveFirst
    Do Until Rst.EOF
        Rst.EditMode
        Rst.Delete
    Rst.MoveNext
    Loop
        
    End Sub

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Conosco molto poco di DAO, quindi prendi la risposta con le pinze:

    1) EditMode è inutile, dato che non modifichi i record ma li stai eliminando.


    2) Non ha molto senso aprire un recordset con un SELECT * per cancellarli uno alla volta.
    E' più logico usare il comando DELETE *, cioè

    codice:
    StrCriterio = "DELETE * from ARCHIVIO"
    Set Rst = CurrentDb.OpenRecordset("StrCriterio", dbOpenDynaset)
    Ovviamente il recordset non restituirà alcuna riga (dato che è vuoto).


    Meglio ancora e più semplice è non usare un recordset, ma usare direttamente il metodo Execute del database (o connessione), e dovrebbe essere così:

    codice:
    CurrentDb.Execute "DELETE * FROM Archivio"
    Con una riga di codice fai tutto il lavoro.

    Comunque verifica sulla guida il metodo Execute

    3) Infine, per azzerare il contatore è necessario compattare il database, usando il metodo CompactDatabase:

    codice:
    DBEngine.CompactDatabase vecchiodb, nuovodb, internazionali, opzioni, password
    Vedi la guida per i dettagli e le spiegazioni sull'uso del metodo

  9. #9
    Utente bannato L'avatar di primeros
    Registrato dal
    Sep 2010
    Messaggi
    20

    Azzerare il contatore...

    Ti rinfrazio gibra, per il momento non riesco a sapere se il codice può funzionare in quanto in questo pc non ho Office, penso di testarlo lunedì. ti ringrazio nuovamente. Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.