Newsgroup: it.comp.appl.access
Titolo: Access e record cancellati

Salve a tutti!
                        Vi scrivo quasi per disperazione dopo aver tentato
invano nei NG di cercare una soluzione al mio quesito.
Ho realizzato un piccolo applicativo che serve a registrare tutte le
richieste di assistenza tecnica che necessitano nei vari uffici dislocati su
edifici diversi tutti collegati tramite una intranet e LAN interne ai vari
uffici. Questo applicativo è stato realizzato in linguaggio ASP (e se mi
permettete lo giro anche al Gruppo it.comp.www.asp) e come base dati  ho
usato ACCESS.
Ho realizzatore un contatore numerico (ahimè!!!) che numera i record ogni
volta che si effettua una richiesta e, mannaggia!!, questo serve anche come
numero assegnato alla pratica da espletare.
All'inizio fatte delle prove via web tutto funzionava alla perfezione...
senonchè... inserito su di un web server interno alla intranet capita non
sempre che il contatore numerico salti dei numeri (per esempio dal record 21
al 27) senza lasciare traccia di quelli intermedi (22, 23, 24, etc.)
scomparsi!!!
Dopo varie ricerchè e prove anche durante un tentativo di richiesta fatta da
fruitori del servizio in rete ho potuto verificare che,  in particolar modo
oggi, succede che dopo aver compilato il form per l'invio non compare la
pagina che visualizza il numero di prot. assegnato (corrispondente al numero
di record occupato) e che risponde che la richiesta è andata a buon fine,
con un "errore visualizzazione pagina". Per cui il richiedente tornando
indietro sul form con le freccette di internet explorer riclicca su invia
diverse volte ed alla fine i record mancanti corrispondono a gli input dati
sul tasto invio non andati a buon fine.
Penso che il problema sta proprio qui e pertanto volevo chiedervi se esiste
una opzione in Access che blocca la possibilità di eliminare un record o
evitare di far scrivere un record inesistente.
Spero di essere stato chiaro.
Max


Se hai affidato il tutto ad un campo contatore e sul load della pagina
questo contatore scatta,
c'è poco da fare.
Per quanto riguarda il lato Access (poi per Asp ti risponderanno i "cugini")
ti conviene crearti tu un Contatore con un dmax su evento conferma, che puoi
gestire meglio.
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

 sul tasto invio non andati a buon fine.
Ciao,
fossi in te lavorerei anche sul codice asp controllando che siano 
giustamente inseriti i campi indispensabili e gestendo gli errori in maniera 
tale che non venga fuori "errore visualizzazione pagina" -> se lavori sul db 
in maniera giusta puoi focalizzare l'intervento su "asp" anzichè su "access" 
! ;-)
Buona giornata :-) 

"Max" <ma u ri bo senza se...@tiCONscaliCONnet.it> ha scritto nel messaggio news:BYDRe.6964$4g5.4...@news4.tin.it...

In questo caso (programmazione Web ASP)+Access, quest'ultimo non centra nulla e nulla può fare, perché il suo compito è solo quello 
di scrivere/eliminare i record.
Devi risolvere tu il problema in ASP; dovresti verificare, una volta inviati i dati (Submit della form) se il record è stato 
scritto; in caso positivo visualizzerai il numero ID (contatore, univoco) assegnato da access (qualsiasi esso sia). In caso negativo 
potresti o ripresentargli la form, con tutti i dati inseriti, pronta per essere  re-inviata o (aberrante soluzione!) una pagina di 
errore...
Ciao.
-- 
Sergio MAZZA 

[CUT]
http://www.webaiuto.it/guide/asp/undicesimo.php
 

Grazie a tutti per la risposta.
In effetti il problema l'ho risolto (almeno credo) direttamente sulla pagina
ASP e modificando sul db il valore dell'ID (protocollo) da contatore a
numerico. Ho poi scritto la seguente istruzione sulla pagina ASP che genera
il nuovo record con questo script:
sql="SELECT MAX(id) AS [max] FROM richiestamanutenzione;"
rs.Open sql, connessione,3,3
max=rs("max")
rs.close
che non fa altro che estrapolare il valore massimo della colonna id, mentre
un po' più sotto c'è l'assegnazione per il nuovo record fatta
dall'istruzione
rs("id")=max+1
e cioè legge il valore massimo e aggiunge +1 al successivo, cosi anche se
dovesse generare l'errore di pagina non dovrebbe saltarmi il numero
successivo.
Il dubbio rimane nel caso in cui il db dovesse comunque assegnare un numero
ad un record visibile ma vuoto.
Sto testando e se non sono troppo fuori tema vi terrò informati...
Ciao
Max