Realizzare un cerca "Dinamico" in database access [ di orione1976]

di il
9 risposte

Realizzare un cerca "Dinamico" in database access [ di orione1976]

27 gen 2025, 16:57

Ciao a tutti, avrei necessità di creare una ricerca variando alcuni campi, faccio un esempio.

 myConnection.Open()
 Dim Readdatabase As OleDbDataReader
 Dim Trova As String
 Trova = "SELECT * From Rupa WHERE settore = '" & CBtrova.Text & "'"
 Dim Cmd As New OleDb.OleDbCommand(Trova, myConnection)
 Cmd.ExecuteNonQuery()
 Readdatabase = Cmd.ExecuteReader
 DGVrupa.Rows.Clear()
 While Readdatabase.Read
     DGVrupa.Rows.Add(Readdatabase("nome"), Readdatabase("dominio"), Readdatabase("ip1"), Readdatabase("ip2"), Readdatabase("gateway"), Readdatabase("note"), Readdatabase("armadio"), Readdatabase("ipswitch"), Readdatabase("nswitch"), Readdatabase("porta"), Readdatabase("presa"), Readdatabase("virus"), Readdatabase("note2"), Readdatabase("utente"), Readdatabase("applicativo"), Readdatabase("telefono"), Readdatabase("settore"), Readdatabase("piano"), Readdatabase("stanza"), Readdatabase("user"), Readdatabase("datareg"), Readdatabase("datamod"))
 End While
 myConnection.Close()

nel caso specifico trovo correttamente tutti i campi in "settore" che corrispondono al testo della CBtrova.Text, la mia esigenza sarebbe di poter variare "settore" con gli altri campi che sono nel database tipo nome o dominio o gateway sempre che corrispondano al testo della combobox 

Come posso fare secondo voi? 

Grazie Marco

27 gen 2025, 21:25

Ciao, penso di non aver capito bene cosa vuoi fare,

comunque .... devi saper utilizzare la where condition e quindi conoscere meglio Sql.

Per studiarti velocemente questo argomento e se conosci e hai a disposizione MsAccess oppure meglio ancora Sql SSMS, prendi la tua tabella e vai in designer per creare una query con le varie condizioni di ricerca che vuoi eseguire.
Quando il risultato ottenuto è quello desiderato, prendi la stringa Sql che viene generata e la riporti con la sintassi corretta, nel tuo codice.

Questo è un modo semplice e veloce per creare e verifica una stringa Sql.
Cerca nel Supporto Tecnico sul web quali operatori puoi utilizzare nella where e vedrai che in meno che non si dica risolvi tutte le tue selezioni e ricerche.

  • 28 gen 2025, 08:21

    Grazie By65Franco per l'interessamento, cercherò sicuramente di percorrere la strada che mi stai indicando se è la più logica attualmente.

    io pensavo di fare una cosa del genere ma ovviamente non funziona

     myConnection.Open()
     Dim Readdatabase As OleDbDataReader
     Dim Trova As String
     Trova = "SELECT * From Rupa WHERE '" & CBtrova.Text & "' = '" & TBtrova.Text & "'"
     Dim Cmd As New OleDb.OleDbCommand(Trova, myConnection)
     Cmd.ExecuteNonQuery()
     Readdatabase = Cmd.ExecuteReader
     DGVrupa.Rows.Clear()
     While Readdatabase.Read
         DGVrupa.Rows.Add(Readdatabase("nome"), Readdatabase("dominio"), Readdatabase("ip1"), Readdatabase("ip2"), Readdatabase("gateway"), Readdatabase("note"), Readdatabase("armadio"), Readdatabase("ipswitch"), Readdatabase("nswitch"), Readdatabase("porta"), Readdatabase("presa"), Readdatabase("virus"), Readdatabase("note2"), Readdatabase("utente"), Readdatabase("applicativo"), Readdatabase("telefono"), Readdatabase("settore"), Readdatabase("piano"), Readdatabase("stanza"), Readdatabase("user"), Readdatabase("datareg"), Readdatabase("datamod"))
     End While
     myConnection.Close()

28 gen 2025, 09:02

Premessa:

Hai bisogno di N caselle di edit tante quanti i campi che vuoi filtrare.

Una funzione (eseguiricerca per esempio) che esegue la sql da richiamare nel metodo keypress di ogni edit.

nel keypress: se tasto=invio eseguiricerca

--------------------------------------------------------------------------------------------------------------

vediamo la funzione esegui ricerca in dettaglio:

per brevità inserisco una ricerca su un campo ma quello che vale per un campo vale per tutti i campi dove applichi la ricerca:

parametro1=Edit.value
select * from tabella 
where (campo1=[parametro1] and [parametro1]<>'')
sql.requery

se edit.value='pippo' la sql diventa

select * from tabella
where campo1='pippo'

se edit.value='' la sql diventa

select * from tabella

ignorando la parte where in quanto non soddisfa una delle condizioni ([parametro1]<>'') e mostrando tutti i record (imposta un limite se necessario con 'limit')

Vediamo adesso con due campi:

parametro1=edit1.value
parametro2=edit2.value
select * from tabella 
where (campo1=[parametro1] and [parametro1]<>'')
and (campo2=[parametro2] and [parametro2]<>'')

in questo caso:

se parametro 1 è valorizzato ('pippo') e parametro 2 è valorizzato ('pluto')

select * from tabella 
where campo1='pippo'
and campo2='pluto'

se parametro1='' e parametro2='pluto'

select * from tabella
where campo2='pluto'

e viceversa se parametro1 è valorizzato e parametro2=''

moltiplica il tutto per ogni campo in cui vuoi fare ricerche e hai finito.

se usi combobox abbi cura che la fonte sia una sql con un valore '' in questo modo:

select campoid, campodescrizione from tabella
union 
select '', ''
order by campodescrizione

al primo valore della combo avrai '' che sarebbe il vlore del parametro che annula la ricerca 

parametroN=combo.value dove combo.value=''

nel caso di combo invece di usare il metodo keypress usa change...

Fai attenzione al tipo di dato: sia edit che combo sono string quindi devi convertire i valori numerici ove presenti.

Se la ricerca vuoi farla parziale basta che la sql sia così:

if edit1.value<>'' then 
   parametro1='*' & edit1.value 
else parametro1=''
endIf
parametro2=edit2.value
select * from tabella 
where (campo1 like [parametro1] and [parametro1]<>'')
and (campo2=[parametro2] and [parametro2]<>'')

in bocca al lupo!

  • 28 gen 2025, 09:09

    Ciao, quei apicini ?

    Presumo che CBtrova possa essere una combobox ?
    Ma CBtrova cosa è ? una textbox ?

    Se la prima è una combobox e la seconda è una textbox , ovviamente non ti ritorna nessun risultato.

    Ma non capisco il ragionamento che devi fare con la where per la tabella rupa... mi puoi spiegare meglio?

    28 gen 2025, 09:26

    Ciao  riguardavo la tua prima esposizione nel thread 

    Perchè non usi il command parameters ?

    Esempio:

    ' reset datagridview
    DGVrupa.Rows.Clear()
    
    ' open connection
    myConnection.Open()
    ' set sql string and connction 
    Dim Trova As String = "SELECT * FROM Rupa WHERE settore = @settore"
    Dim Cmd As New OleDb.OleDbCommand(Trova, myConnection)
    
    ' add parameters
    Cmd.Parameters.AddWithValue("@settore", CBtrova.Text)
    
    ' exexute reader 
    Dim Readdatabase As OleDbDataReader = Cmd.ExecuteReader()
    
    ' read
    While Readdatabase.Read()
        DGVrupa.Rows.Add(
            Readdatabase("nome"), Readdatabase("dominio"), Readdatabase("ip1"), Readdatabase("ip2"), 
            Readdatabase("gateway"), Readdatabase("note"), Readdatabase("armadio"), 
            Readdatabase("ipswitch"), Readdatabase("nswitch"), Readdatabase("porta"), 
            Readdatabase("presa"), Readdatabase("virus"), Readdatabase("note2"), 
            Readdatabase("utente"), Readdatabase("applicativo"), Readdatabase("telefono"), 
            Readdatabase("settore"), Readdatabase("piano"), Readdatabase("stanza"), 
            Readdatabase("user"), Readdatabase("datareg"), Readdatabase("datamod")
        )
    End While
    ' close
    myConnection.Close()

    In questo caso se vuoi trovare tutti i records che corrispondono a settore = CBtrova , sei a posto... adesso che vorresti fare oltre a questa ricerca ? devi aggiungere AND oppure OR altre condizioni di ricerca per le altre fields della tabella interrogata?

    28 gen 2025, 10:34

    28/01/2025 - By65Franco ha scritto:

    Ciao  riguardavo la tua prima esposizione nel thread 

    Perchè non usi il command parameters ?

    Esempio:

    ' reset datagridview
    DGVrupa.Rows.Clear()
    
    ' open connection
    myConnection.Open()
    ' set sql string and connction 
    Dim Trova As String = "SELECT * FROM Rupa WHERE settore = @settore"
    Dim Cmd As New OleDb.OleDbCommand(Trova, myConnection)
    
    ' add parameters
    Cmd.Parameters.AddWithValue("@settore", CBtrova.Text)
    
    ' exexute reader 
    Dim Readdatabase As OleDbDataReader = Cmd.ExecuteReader()
    
    ' read
    While Readdatabase.Read()
        DGVrupa.Rows.Add(
            Readdatabase("nome"), Readdatabase("dominio"), Readdatabase("ip1"), Readdatabase("ip2"), 
            Readdatabase("gateway"), Readdatabase("note"), Readdatabase("armadio"), 
            Readdatabase("ipswitch"), Readdatabase("nswitch"), Readdatabase("porta"), 
            Readdatabase("presa"), Readdatabase("virus"), Readdatabase("note2"), 
            Readdatabase("utente"), Readdatabase("applicativo"), Readdatabase("telefono"), 
            Readdatabase("settore"), Readdatabase("piano"), Readdatabase("stanza"), 
            Readdatabase("user"), Readdatabase("datareg"), Readdatabase("datamod")
        )
    End While
    ' close
    myConnection.Close()

    In questo caso se vuoi trovare tutti i records che corrispondono a settore = CBtrova , sei a posto... adesso che vorresti fare oltre a questa ricerca ? devi aggiungere AND oppure OR altre condizioni di ricerca per le altre fields della tabella interrogata?

    Ciao dovrei cambiare la ricerca da settore a uno degli altri campi tipo dominio o gateway etc...

    praticamente se dalla combobox seleziono dominio e nella textbox scrivo un testo lui vada a cercare solo in dominio oppure seleziono gateway e cerca solo in gateway

  • 28 gen 2025, 10:49

    Scrivi il codice adeguato per creare la corretta stringa sql in base alla selezione della combobox. E usa I parametri relativi.

    Per capirci, fai in modo che questa 

    Trova = "SELECT * From Rupa WHERE settore = '" & CBtrova.Text & "'"

    venga costruita in base alla scelta.

    28 gen 2025, 12:04

    28/01/2025 - orione1976 ha scritto:

    praticamente se dalla combobox seleziono dominio e nella textbox scrivo un testo lui vada a cercare solo in dominio oppure seleziono gateway e cerca solo in gateway

    Ma delle due una o entrambe le ricerche combinandole ?

  • 28 gen 2025, 13:05

    28/01/2025 - orione1976 ha scritto:

    Ciao dovrei cambiare la ricerca da settore a uno degli altri campi tipo dominio o gateway etc...

    ?? non credo di aver capito. se sbaglio mi correggi.

    gli elementi della combo sono i nomi dei campi?

    in base alla selezione della combo, per esempio "gateway" vuoi cercare il valore di una editbox sul campo "gateway"?

    e se la selezione della combo, per esempio "ip" vuoi cercare il valore di una editbox sul campo "ip"?

    se si:

    non puoi usare parametri per descrivere i campi ma puoi costruirti la sql.

    sql=''
    testodacercare='select * from tabella'
    if (combo.index>0 and edit.text<>'') then
      sql=testodacercare & ' where ' & combo.text & '=' & edit.text
    else 
      sql=testodacercare
    endIf

    supponendo che il primo valore della combo sia ''.

    per completezza controlla i valori da cercare: se cerchi ip assicurati che edit sia del tipo xxx.xxx.xxx.xxx ma penso sia superfluo dirlo... 

    in base all'index della combo richiami il controllo (funzione) della formattazione del testo da cercare.

    PS. una cosa del genere vuole che la combo sia readonly... e i valori esattamente uguali ai nomi dei campi.

    28 gen 2025, 13:06

    28/01/2025 - By65Franco ha scritto:

    While Readdatabase.Read() DGVrupa.Rows.Add( Readdatabase("nome"), Readdatabase("dominio"), Readdatabase("ip1"), Readdatabase("ip2"), Readdatabase("gateway"), Readdatabase("note"), Readdatabase("armadio"), Readdatabase("ipswitch"), Readdatabase("nswitch"), Readdatabase("porta"), Readdatabase("presa"), Readdatabase("virus"), Readdatabase("note2"), Readdatabase("utente"), Readdatabase("applicativo"), Readdatabase("telefono"), Readdatabase("settore"), Readdatabase("piano"), Readdatabase("stanza"), Readdatabase("user"), Readdatabase("datareg"), Readdatabase("datamod") ) End While

    tutto questo non lo capisco... a che serve?

  • 28 gen 2025, 13:12

    28/01/2025 - sihsandrea ha scritto:

    28/01/2025 - By65Franco ha scritto:

    While Readdatabase.Read() DGVrupa.Rows.Add( Readdatabase("nome"), Readdatabase("dominio"), Readdatabase("ip1"), Readdatabase("ip2"), Readdatabase("gateway"), Readdatabase("note"), Readdatabase("armadio"), Readdatabase("ipswitch"), Readdatabase("nswitch"), Readdatabase("porta"), Readdatabase("presa"), Readdatabase("virus"), Readdatabase("note2"), Readdatabase("utente"), Readdatabase("applicativo"), Readdatabase("telefono"), Readdatabase("settore"), Readdatabase("piano"), Readdatabase("stanza"), Readdatabase("user"), Readdatabase("datareg"), Readdatabase("datamod") ) End While

    tutto questo non lo capisco... a che serve?

    Forse vuole alimentare una datagridview ? ;-)

    In tal caso basterebbe una riga di codice

    Ma forse basterebbe anche applicare i filtri al caricamento "fill" del bindinsource con  il suo relativo tableadapter del dataset.

    Boh... non ho capito bene lo scopo. Seguo per capire meglio... 

    28 gen 2025, 14:28

    28/01/2025 - By65Franco ha scritto:

    28/01/2025 - orione1976 ha scritto:

    praticamente se dalla combobox seleziono dominio e nella textbox scrivo un testo lui vada a cercare solo in dominio oppure seleziono gateway e cerca solo in gateway

    Ma delle due una o entrambe le ricerche combinandole ?

    una alla volta ovviamente

    vorrei che cambiando in la combobox in settore, se corrisponde al testo della textbox mi filtra il settore

    se invece cambio la combobox in gateway, se corrisponde al testo della textbox mi filtra il gateway

    e cosi dicendo per il resto

    28 gen 2025, 16:31

    28/01/2025 - orione1976 ha scritto:

    una alla volta ovviamente

    vorrei che cambiando in la combobox in settore, se corrisponde al testo della textbox mi filtra il settore

    se invece cambio la combobox in gateway, se corrisponde al testo della textbox mi filtra il gateway

    Beh, ti è stato spiegato come fare.

    Da oregon e da me.

    Butta giù un po di codice

    28 gen 2025, 16:33

    28/01/2025 - sihsandrea ha scritto:

    28/01/2025 - orione1976 ha scritto:

    una alla volta ovviamente

    vorrei che cambiando in la combobox in settore, se corrisponde al testo della textbox mi filtra il settore

    se invece cambio la combobox in gateway, se corrisponde al testo della textbox mi filtra il gateway

    Beh, ti è stato spiegato come fare.

    Da oregon e da me.

    Butta giù un po di codice

    Si, si sto studiando le vostre soluzioni, ho risposto alla domanda di prima... studio un po e poi mi riaffaccio.

    Grazie

  • 28 gen 2025, 16:54

    28/01/2025 - orione1976 ha scritto:

    28/01/2025 - By65Franco ha scritto:

    28/01/2025 - orione1976 ha scritto:

    praticamente se dalla combobox seleziono dominio e nella textbox scrivo un testo lui vada a cercare solo in dominio oppure seleziono gateway e cerca solo in gateway

    Ma delle due una o entrambe le ricerche combinandole ?

    una alla volta ovviamente

    vorrei che cambiando in la combobox in settore, se corrisponde al testo della textbox mi filtra il settore

    se invece cambio la combobox in gateway, se corrisponde al testo della textbox mi filtra il gateway

    e cosi dicendo per il resto

    • Ok, allora dobbiamo affermare che la combobox contiene "esattamente" i nomi delle fields della tabella
      sarà una combobox a 2 colonne dove la prima contiene il nome esatto delle fields e la seconda una descrizione più intuitiva per l'utente
    • Poi devi stabilire se con la textbox devi produrre una ricerca "esatta" oppure "che contiene" ... la prima la soddisfi con l'operatore = e la seconda con l'operatore Like
    • Il Valore della textbox andrebbe sempre passata come parametro alla stringa Sql


      ESEMPIO:

    	' retrieve combobox value
        Dim fieldName As String = CBtrova.SelectedValue.ToString()
        ' set sql string
        Dim Trova As String = $"SELECT * FROM Rupa WHERE {fieldName} = @valore"
    
        ' set sql command
        Dim Cmd As New OleDb.OleDbCommand(Trova, myConnection)
    	' set parameters
        Cmd.Parameters.AddWithValue("@valore", TBtrova.Text)
        
        ....
        ...
        .

    Una cosa di questo genere per eseguire la ricerca di tipo "Esatta"

    Mentre se vuoi una ricerca di tipo "che contiene" con l'operatore LIKE

    	' retrieve combobox value
        Dim fieldName As String = CBtrova.SelectedValue.ToString()
        ' set sql string
        Dim Trova As String = $"SELECT * FROM Rupa WHERE {fieldName} LIKE @valore"
    
        ' set sql command
        Dim Cmd As New OleDb.OleDbCommand(Trova, myConnection)
    	' set parameters
        Cmd.Parameters.AddWithValue("@valore", "%" & TBtrova.Text & "%")
        
        ....
        ...
        .

    Più o meno una cosa di questo tipo

    Prova a provare ;-))

    [Edit..]

    Mi dimenticavo di spiegarti l'importanza di utilizzare i parametri nella costruzione della stringa sql

    Alcuni dei motivi sono:

    • prevenire SQL Injection e non lasci spazio di vulnerabilità
    • gestisce automaticamente la conversione dei valori da passare, per esempio le fields di tipo datetime, nvarchar, etc... non devi preoccuparti di convertirle preventivamente
    • caratteri speciali: non devi preoccuparti di dover gestire gli apicini, escape, doppi apici, etc... lo farà in automatico
    • in molti casi si migliorano le prestazioni della Sql

      ----

    Con questo penso che adesso hai qualche spunto e argomenti da studiare e approfondire.

  • 28 gen 2025, 20:37

    Devi formattare il valore da trovare

    Se combo è su gateway e edit vale 192.168.1.1

    Appena cambi la combo su porta hai un errore perché la porra non può essere del tipo xxx.xxx.xxx.xxx

    Io andrei con la prima soluzione prospettata

    Metti un edit sopra ogni campo e al keypress vai in ricerca

    Select.... Where gateway=editgateway and editgateway<>''

    And idem per ogni campo

    In questo modo puoi filtrare su più campi rendendo più utile la ricerca.

    Gli edit li imposti con la relativa maschera di input e risolvi. Gateway sarà xxx.xxx.xxx.xxx porea sarà yyyy ecc...

    Esempio edit

    Gateway.                 Porta.              Subnet.........

    Esempio tabella

    gatewayPortaSub net 
        
  • 28 gen 2025, 21:16

    28/01/2025 - sihsandrea ha scritto:

    Gateway.                 Porta.              Subnet.........

    Esempio tabella

    gatewayPortaSub net 
        

    Direi proprio di si, infatti esistono diversi metodi e più efficaci .... 

    personalmente farei una cosa di questo tipo:

    1. popolare senza filtri la datagridview
    2. per le colonne dove eseguire le ricerche, come le tre sopra riportate, imposterei le tre combobox che conterranno il riepilogo dei gateway, delle porte e delle SubNet presenti nella datagridview
    3. per le combobox dove esiste una selezione <> da null si costruisce e si applica il filtro alla datagridview

    --- 

    End, non vi è altro da fare ... pochissime righe di codice, semplice, immediato e non porta l'utente a scrivere un bel nulla, ma bensì potrà velocemente cliccare nelle combobox gli elementi che si vogliono vedere nella datagridview 

9 Risposte

  • Re: Realizzare un cerca "Dinamico" in database access [ di orione1976]

    Ciao orione1976,

    ho cercato di riportare fin dove eravamo arrivati con la discussione del tuo Thread ripulendo dagli inutili commenti già segnalati nel precedente.

    Se e come vorrai possiamo procedere alla chiusura del Thread con le tue ultime considerazioni e approfondimenti

    Grazie, e come sempre a completa disposizione.

  • Re: Realizzare un cerca "Dinamico" in database access [ di orione1976]

    Forse mi sono espresso male e il disegno lasciava a desiderare....

    mettere gli edit con maschera di input per avere il dato già formattato (almeno per la parte string).

    all'invio (keypress uno valido per tutti gli editbox) lanciare la sql

    parametro1=edit1.value
    parametro2=edit2.value
    select * from tabella 
    where (campo1=[parametro1] and [parametro1]<>'')
    and (campo2=[parametro2] and [parametro2]<>'')
    ecc... per gli altri campi.

    la griglia sembra superflua in quanto i dati sono già disposti in dbgrid.

    alla sql si può aggiungere il posizionamento al record (diverso da una ricerca che può portare a più risultati).

    il reset riporta la tabella a:

    select * from tabella limit 25 (opzionale)

    e dli edit a ''

  • Re: Realizzare un cerca "Dinamico" in database access [ di orione1976]

    Aggiungo: io al doppio click nel'intestazione dei campi di solito coloro l'intestazione evidenziata e aggiungo

    order by (campo evidenziato) utile per le ricerche

  • Re: Realizzare un cerca "Dinamico" in database access [ di orione1976]

    29/01/2025 - sihsandrea ha scritto:

    mettere gli edit con maschera di input per avere il dato già formattato (almeno per la parte string).

    all'invio (keypress uno valido per tutti gli editbox) lanciare la sql

    e perchè no ? ... per niente male direi e si potrebbero utilizzare i TryParse per validare le stringhe per un appropriato confronto con le fileds e magari all'occorrenza gestire i valori null

  • Re: Realizzare un cerca "Dinamico" in database access [ di orione1976]

    29/01/2025 - By65Franco ha scritto:

    ho cercato di riportare fin dove eravamo arrivati con la discussione del tuo Thread ripulendo dagli inutili commenti ....

    Franco... non mi pare sia compito tuo "ripulire" commenti (del tutto legittimi quelli di Grumpy, fra l'altro) e sostituirti a moderatori e finanche all'utente che hanno aperto il thread originario. Non è neanche compito tuo indicare agli utenti se vogliono chiudere thread, completarli o meno.

    Mi sembra sia meglio lasciare ad Orione la decisione di farci sapere come vanno gli studi su quanto ha avuto come risposte e aprire eventualmente un altro thread.

    E sono convinto che non solo tu, ma tutti, compreso Grumpy, siano a disposizione non solo di Orione ma di tutti gli utenti del forum che abbiano bisogno di chiarimenti o aiuti. 

    P.S. per il futuro una cortesia, evita di quotare completamente e integralmente i post altrui nelle tue risposte. L'overquoting rende tutto poco leggibile.

  • Re: Realizzare un cerca "Dinamico" in database access [ di orione1976]

    Ciao oregon 

    si hai perfettamente ragione, scusa. 
    Mia intenzione e interesse era solo quello di preservare il lavoro e il tempo speso da parte di tutti e dare la possibilità di chiudere il thread in modo proficuo nell'interesse di orione1976 visto che oramai mancava poco poco alla conclusione.

  • Re: Realizzare un cerca "Dinamico" in database access [ di orione1976]

    30/01/2025 - By65Franco ha scritto:

    hai perfettamente ragione, sc

    Non dovresti scusarti con me, semmai con Grumpy.

    In ogni caso questo thread non ha alcun motivo di esistere e comunque non mi pare che sia tu a decidere quando e se si possa concludere.

  • Re: Realizzare un cerca "Dinamico" in database access [ di orione1976]

    XBy65Franco: se non ci sono ulteriori apporti tecnici da fornire in questa discussione, direi che può essere chiusa.

    Attendo tue

  • Re: Realizzare un cerca "Dinamico" in database access [ di orione1976]

    30/01/2025 - Toki ha scritto:

    XBy65Franco: se non ci sono ulteriori apporti tecnici da fornire in questa discussione, direi che può essere chiusa.

    Attendo tue

    ok, benissimo

Devi accedere o registrarti per scrivere nel forum
9 risposte