RECORD DELETE

sabato 03 maggio 2008 - 22.38

vivace guevara Profilo | Newbie

Ecomi qua; fresco di registrazione e già pronto a chiedere aiuto… ringrazio anticipatamente chi mi vorrà dire come risolvere il problema che mi si presenta. Premetto che la mia preparazione in fatto sia di VB che di Access, è veramente scarsina.
Devo compiere una operazione che avrei detto essere di una banalità sconcertante ed invece… dal profondo della mia ignoranza, la vedo piuttosto dura: fatemi, per favore, eliminare da una tabella sottostante la maschera ‘di servizio’, un record; precisamente l’ultimo, quando si sia verificata (ad inserimento dati avvenuto), la condizione di duplicazione. So che potrei imporre il divieto di duplicazione, so che potrei fare in modo di visualizzare un messaggio di conferma ma ciò non mi interessa. In puro VB, ricorrendo pure a query, macro, ADO, DAO (anche se delle due ultime ‘entità’ non conosco nulla), ditemi – per favore – codice, sub dove inserirlo, eventuale struttura della query e quant’altro serve per raggiungere l’obiettivo.
Grazie

lbenaglia Profilo | Guru

>fatemi, per favore, eliminare da una tabella
>sottostante la maschera ‘di servizio’, un record; precisamente
>l’ultimo, quando si sia verificata (ad inserimento dati avvenuto),
>la condizione di duplicazione. So che potrei imporre il divieto
>di duplicazione, so che potrei fare in modo di visualizzare un
>messaggio di conferma ma ciò non mi interessa.
Che senso ha permettere l'inserimento di una riga che violi la primary key se poi devi immediatamente eliminarlo?
Non è meglio annullare automaticamente l'inserimento se esiste una violazione della primary key?

>Grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

vivace guevara Profilo | Newbie

Tu hai ragione ma vi possono essere situazioni (almeno per uno con le mie scarse conosceenze), che sconsigliano questa soluzione.
Comunque, allora - per favore - dimmi molto in generale come posso eliminare un record qualsiasi una volta che legittimamente sia stato registrato (via VB, via query di eliminazione - qual'è il criterio per identificare univocamente un record - via query lanciata da VB).
Ti ringrazio molto per l'interessamento e rilancio:

Da un bottone comando, lancio una sub_onclick del tipo:

Form.controllo.controllo.text (o controllo.value) = Ucase(Form.controllo.controllo.text)

anche nella forma implicita: pippo= Form.controllo.controllo.text (o controllo.value)
Form.controllo.controllo.text (o controllo.value) = Ucase(pippo)

Risultato: vengono trasformati in maiuscolo tutti i <pippo> corrispondenti a quello del record selezionato e non SOLO quello selezionato, appunto.
Perchè? Come evitare ciò?

Ri-grazie

lbenaglia Profilo | Guru

>Tu hai ragione ma vi possono essere situazioni (almeno per uno
>con le mie scarse conosceenze), che sconsigliano questa soluzione.
Ovvero?

>Comunque, allora - per favore - dimmi molto in generale come
>posso eliminare un record qualsiasi una volta che legittimamente
>sia stato registrato (via VB, via query di eliminazione - qual'è
>il criterio per identificare univocamente un record - via query
>lanciata da VB).
Dipende da come tu consideri duplicata la riga.
In un RDBMS esiste il concetto di chiave primaria (Primary Key), ovvero un vincolo che permette di identificare unicamente ogni riga di una tabella.
La PK può essere definita su una colonna o su un insieme di colonne e fisicamente viene implementata definendo un indice univoco su di esse, di conseguenza viene impedita la duplicazione dei valori di quelle colonne assicurandone l'univocità a livello di tabella.

>Ti ringrazio molto per l'interessamento e rilancio:
...
>Perchè? Come evitare ciò?
Non ho capito

>Ri-grazie
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

vivace guevara Profilo | Newbie

Non vorrei passare per un petulante scocciatore, ma non posso fare altro che ripetere le due domande (cercherò di farlo con parole diverse):
1) Scordati il fatto dei duplicati. Voglio costruire un query che dovrà cancellare dalla tabella interessata l'intero record n.69. Quo modo?
Una volta selezionata la tabella interessata, una volta scelto il tipo di query, cosa diavolo devo scrivere nelle caselle? <Campo:>... ???;
<Tabella:>... nometabella; <Elimina:>... dove; <Criteri:>...???
Se per questa via non si giunge da alcuna parte, ti prego di indicarmi la strada giusta (ma dettagliatamente);
altrimenti, ti prego di dirmi anche dove e che cosa devo scrivere in VB per lanciare la suddetta query;
2) Una tabella contiene il campo "nome" (solo quello se vuoi), scritto in minuscolo; la maschera che gestisce detta tabella, presenta -
accanto alla casella di testo che mi consente di visualizzare i vari nomi - il bottone "OK".
Attraverso il selettore di record, mi posiziono sul record nr. xx in corrispondenza del quale (nome... "lorenzo"), clicko su OK;
vado a vedere la tabella e scopro che tutti i "lorenzo" sono diventati "LORENZO" mentre io avrei voluto che il codice che ho scritto in
sub nome_click() :n=nome.value
nome.value=Ucase(n), avesse avuto effetto soltanto sul "lorenzo" del record xx.

Sperando di essere riuscito a spiegarmi, ti saluto e ringrazio nuovamente
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5