Ho provato ad impostare il tutto come suggeritomi (campo PROPRIETA' e tabelle correlate con TIPO, PROPRIETA ma purtroppo ho relazione di molti a molti ... cerco di spiegarmi:
un oggetto può avere 1 sola proprietà mentre altri ne possono avere fino a 16 di proprietà e pure doppie ( es una matita(il TIPO) con doppia punta(PUNTA sarebbe la proprieta : per es. pensate alle penne con anche 6 colori selezionabili) alle estremità di cui una ROSSA e una BLU (che sarebbero i VALORI assegnati alle proprieta).
io invece da principiante totale ho pensato ad avere dentro il singolo record tutte a 16 le PROPRIETA con i relativi 16 VALORI.
questo mi permette di avere una QUERY con tutte le PROPRIETA' legate ad ogni TIPO .
avrò per es. un record con :
ID :10 / Famiglia : scrittura / Tipo : matita / Param1: Punta Colore / valoreParam1: rosso / Param2: Punta Colore " _
& " valoreParam2: blu / Param3: lunghezza / valoreParam3: 10cm / param4: / valoreParam4: / param5: /valoerParam5:
nel momento in cui vado ad inserire una nuova "matita" oltre ai parametri già disponibili da tutti i record precedenti ne posso aggiungere altri (fino a 16in tot) che mi verranno proposti durante l'inserimento.
ho quindi la QUERY di accodamento PARAMETRI: dove di volta in volta accodo i nuovi parametri
ID: 2 / Tipo: matita / Parametro : Punta Colore
ID: 3 / Tipo: matita / Parametro : lunghezza
ID: 5 / Tipo: matita / Parametro : Materiale
in fase di ricerca ora devo poter "selezionare" tutti quei campi che soddisfano ai criteri scelti (tramite cbo) FAMIGLIA,TIPO,Parametro1,ValoreParametro1,Parametro2,ValoreParametro2 ecc...
l'inghippo è in questa fase... dove su 16 parametri ipoteticamente salvati nel DB io devo poter cercare per es il parametro "Punta Colore" in tutti e 16 i campi parametro e relativi valori .
quindi ho realizzato una sequenza di AND /OR per gestirli in un stringa SQL per modificare il "RecordSource"
Dim z As String
z = "SELECT AttrezzatureUbicazione.* " _
& "FROM AttrezzatureUbicazione " _
& "WHERE AttrezzatureUbicazione.Famiglia LIKE '*" & CercaFamiglia & "*'" _
& "AND AttrezzatureUbicazione.Tipo LIKE '*" & CercaTipo & "*' " _
& "AND AttrezzatureUbicazione.DESCRIZIONE LIKE '*" & CercaDESCRIZIONE & "*' " _
& "AND AttrezzatureUbicazione.Locale LIKE '*" & CercaLocale & "*' " _
& "AND AttrezzatureUbicazione.PosizioneOrizzontaleAntioraria LIKE '*" & CercaOrizzontale & "*' " _
& "AND AttrezzatureUbicazione.[Verticale Ubicazione] LIKE '*" & CercaVerticale & "*' " _
& "AND (AttrezzatureUbicazione.PR1= cboParametro1 OR AttrezzatureUbicazione.PR3= cboParametro1 " _
& "OR AttrezzatureUbicazione.PR5 = cboParametro1 OR AttrezzatureUbicazione.PR7 = cboParametro1 " _
& "OR AttrezzatureUbicazione.PR9 = cboParametro1 OR AttrezzatureUbicazione.PR11 = cboParametro1 " _
& "OR AttrezzatureUbicazione.PR13 = cboParametro1 OR AttrezzatureUbicazione.PR15 = cboParametro1 " _
& "OR AttrezzatureUbicazione.PR17 = cboParametro1 OR AttrezzatureUbicazione.PR19 = cboParametro1 " _
& "OR AttrezzatureUbicazione.PR21 = cboParametro1 OR AttrezzatureUbicazione.PR23 = cboParametro1 " _
& "OR AttrezzatureUbicazione.PR25 = cboParametro1 OR AttrezzatureUbicazione.PR27 = cboParametro1 " _
& "OR AttrezzatureUbicazione.PR29 = cboParametro1 OR AttrezzatureUbicazione.PR31 = cboParametro1) ;"
Form_Ricerca.RecordSource = z
Form_Ricerca.Requery
dove "cboParametro1" rappresenta il primo dei parametri che io vorrei cercare nei record (la sua origine dati è la Query dove attraverso le UNION ho ricavato l'elenco di tutti i parametri dai 16 campi).
la cosa funzionerebbe anche; se non fosse che avviando la maschera e premendo sulla combo "cboParametro1" e selezionato il parametro voluto mi esce una maschera automatica che mi richiede l'inserimento manuale del valore da cercare da inserire nell'oggetto "cboParametro1" per ciascuno dei 16 campi OR, come se la combo "cboParametro1" non esistesse nella maschera stessa e la stessi "creando li per li.
scusate la mia ignoranza e scarsa preparazione, ma è veramente poco che mi ci sto deicando.