Buongiorno a tutti,
avrei bisogno di un piccolo aiutino, sto costruendo una piccola applicazione dove inserire vari articoli che andranno poi a comporre un template tipo, per velocizzare l'inserimento e la creazione di una scheda per una determinata persona.
La tabella articoli ha circa 300 record ma, nella realtà quando verranno create le schede, gli articoli che solitamente devono essere visibili sono circa un 40. Per facilitare questa operazione e rendere più leggibile la scheda all'operatore ho pensato di creare un template così da estrarre solamente i record (articoli) che interesseranno in quel momento. Ho creato una tabella "Tbl_TEMPLATE" dove andrò a scrivere, separati da una virgola, gli ID degli articoli, es: "22,34,56,67,58,89,96". Questo campo poi mi servirà per estrarre gli articoli come sopra descritto ma, non è questo il problema.
Per evitare che venga lasciato un ID orfano nella tabella template, eliminando un articolo, ho pensato di creare un controllo che vada a verificare la presenza dell'ID dello stesso, all'interno della tabella template e così bloccare il processo. Anticipo che i template possono essere anche essere più di uno.
Per controllare ciò ho trovato una funzione che fa appunto questo:
Il problema lo incontro utilizzando la funzione all'interno del ciclo While, per verificare all'interno del campo TEMPLATE, di ogni singolo record presente nella tabella Tbl_TEMPLATE:codice:Function InArray(MiaArray, CosaCercare) Dim i InArray = False If IsArray(MiaArray) And CosaCercare <> "" Then For i = 0 To UBound(MiaArray) If LCase(CosaCercare) = LCase(MiaArray(i)) Then InArray = True Exit For End If Next End If End Function
codice:ID_DENOMINAZIONE = Request.QueryString("ID_DENOMINAZIONE") Sql = "SELECT * FROM Tbl_TEMPLATE ; " Set Rs = Server.CreateObject("ADODB.Recordset") Rs.Open Sql, Conn, 1, 2 While Not Rs.Eof ARRTEMPLATE = Split(RS("TEMPLATE"), ",") TROVACORRISPONDENZA = ARRTEMPLATE If InArray(TROVACORRISPONDENZA, ID_DENOMINAZIONE) = True Then Response.Write "Il record è relazionato....bla bla bla..." Rs.Close Set Rs = Nothing Conn.Close Set Conn = Nothing Response.End End If Rs.MoveNext Wend Rs.Close Set Rs = Nothing
Il problema è che se provo ad eliminare l'articolo che, nel campo della tabella template è posizionato come primo es: io cancello l'articolo con ID "15" e nel campo della tabella template ho "15,52,89,93" lo script trova l'ID nel capo e interrompe l'eliminazione, se invece elimino un ID che all'interno del campo della tabella template è posizionato da secondo in poi, l'eliminazione va a buon fine ed io invece vorrei che venisse fermato ugualmente, perchè gli sto passando un valore che è presente in tale campo.
Dal tipo di comportamento pare che la funzione non riesca a "ciclare" su tutto il campo della tabella template.
Avete qualche dritta da darmi? Anticipatamente ringrazio.

Rispondi quotando
