Ciclo split su select eliminando i doppioni

di il
8 risposte

Ciclo split su select eliminando i doppioni

Salve,
è il mio primo post, penso di essere nella sezione giusta per esporre un mio problema(se è errata me ne scuso con il moderatore la quale chiedo di spostarla alla sezione corretta) che sto letteralmente impazzendo e non riesco a risolvere, ho un db access dove c'è il campo localita che contiene varie città con virgola che necessita splittarle, tipo:
1 riga: MILANO, ROMA, FIRENZE
2 riga: ROMA, GENOVA, NAPOLI
In pratica le città indicate da splittare possono essere presenti più volte nelle righe del campo localita, ecco lo script che sto utilizzando ora e che funziona ma purtroppo visualizzo i dati con i doppioni, ecco vorrei un vostro aiuto su come posso risolvere questa problematica, grazie.

<%
loca = request.querystring("loc")

sql = "SELECT DISTINCT localita FROM offerte WHERE tipo = '" & request.querystring("mod") & "' GROUP BY localita"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, Conn, 3

if rs.eof then
else
%>
<select size="1" name="loc" onchange='this.form.submit()'>
<%
rs.MoveFirst 
Do While Not rs.EOF

controllo = rs.fields("localita")
arryControllo = Split(Controllo, ", ") 
For i=0 to UBound(arryControllo)
stringa = Trim(arryControllo(i))
%>
<option value="<%=stringa%>"<%if loca = "" & stringa & "" then%>selected="selected"<%end if%> ><%=stringa%></option>
<%
Next

rs.MoveNext
Loop
rs.Close
set rs = Nothing
end if
%>

8 Risposte

  • Re: Ciclo split su select eliminando i doppioni

    ...Ha cose strane per il VBA... di Access per lo meno...!
    Se parliamo di VBA Access, per sapere se hai doppioni potresti usare una Collection, ed inserire in essa il NomeCittà, se già presente otterrai errore, di conseguenza salti il tutto.
    Ti evita di controllare ogni volta... ed alla fine hai la Collection PULITA da doppioni e con questa fai il ciclo finale.

    Prova una cosa simile
    
    Function X()
        On Error Resume Next
        Const P         As String = "Pippo,Paolo,Pippo,Luigi,Carlo,Carlo"
        Dim c           As New Collection
        Dim varPs       As Variant
        Dim varP        As Variant
        Dim iItem       As Long
        
        varPs = Split(P, ",")
        For Each varP In varPs
            c.Add CStr(varP), CStr(varP)
        Next
    
        Debug.Print c.Count
        For iItem = 1 To c.Count
            Debug.Print c.iTem(iItem)
        Next
    
    End Function
  • Re: Ciclo split su select eliminando i doppioni

    È ASP.... non so proprio come poter risolvere il problema, puoi aiutarmi?
  • Re: Ciclo split su select eliminando i doppioni

    djjunior ha scritto:


    è ASP.... non so proprio come poter risolvere il problema, puoi aiutarmi?
    Dovrebbe funzionare anche in ASP, chiedi ad un Moderatore di SPOSTARLA, questa sezione non è ASP.
  • Re: Ciclo split su select eliminando i doppioni

    Ho provato ma non va, grazie, chiedo ad moderatore di spostare questo post nella sezione ASP, grazie
  • Re: Ciclo split su select eliminando i doppioni

    Nn avendo ancora spostato questo mio post nella sezione asp per evitare di scrivere lo stesso post li cè qualcuno che può aiutarmi a risolvere questo mio problema? Grazie
  • Re: Ciclo split su select eliminando i doppioni

    Guarda che funziona anche in ASP, ovviamente non puoi copia/incollarlo... devi modificare la dichiarazione delle variabili che in ASP non è come in VBA di Access... e questo dovresti saperlo...!
    L'unica variante è la Collection che puoi studiare qui:
  • Re: Ciclo split su select eliminando i doppioni

    Ciao ALEX, grazie ma purtroppo non so come modificare le variabili per utilizzarlo in asp, puoi aiutarmi? Te ne sarei grato
    Grazie 1000
  • Re: Ciclo split su select eliminando i doppioni

    Prova a leggere questo:
    http://www.tek-tips.com/viewthread.cfm?qid=115935

    Usa i Dictionary ma il concetto è il medesimo...
Devi accedere o registrarti per scrivere nel forum
8 risposte