Duplica record strano...

di il
13 risposte

Duplica record strano...

Buonasera a tutti
in una maschera articoli, in corrispondenza di ogni record, ho posizionato un pulsante con la seguente funzione duplica record:

DoCmd.RunCommand acCmdSelectRecord
DoCmd.RunCommand acCmdCopy
DoCmd.RunCommand acCmdPasteAppend

che una volta eseguita fa la duplicazine del record in questione ma con 2 anomalie:

1) nel campo di ricerca x colore, che è una casella combinata che contiene il campo colore da cui vengono filtrati appunto gli articoli per colore, vengono scritti caratteri asiatici random come da foto allegate generando l'errore sempre presente in una delle immagini allegate (dovuto al fatto che questo testo "misterioso" non corrisponde ad una voce di elenco)

2) il recordi viene duplicato ma viene aggiunto un ulteriore record completamente vuoto con indice precedente al nuovo record duplicato...

dove sbaglio?

Grazie come al solito
Allegati:
15015_d91c252807f093c2bfb9495605e1c6f4.png
15015_d91c252807f093c2bfb9495605e1c6f4.png

15015_28a0d363812f0ac8b2b0b5fea12daa9b.png
15015_28a0d363812f0ac8b2b0b5fea12daa9b.png

13 Risposte

  • Re: Duplica record strano...

    1. Quando selezioni un valore dalla casella combinata, i valori sottostanti sono coerenti?
    2. Quel codice scritto "crudamente" così non indica su quale recordset deve appendere. Non va bene quel set di istruzioni.

    Potresti indicare:
    - nome proprio di maschera (non si capisce se c'è anche una sottomaschera)
    - nome proprio di casella combinata
    - dove va a pescare i valori la casella combinata
  • Re: Duplica record strano...

    OsvaldoLaviosa ha scritto:


    1. Quando selezioni un valore dalla casella combinata, i valori sottostanti sono coerenti?
    si i dati della casella combinata corrispondono sempre a quello che deve essere realmente contenuto
    2. Quel codice scritto "crudamente" così non indica su quale recordset deve appendere. Non va bene quel set di istruzioni.
    ok, ma il codice parte sul click di un pulsante in corrispondenza del record che deve essere duplicato, ed in effetti il record viene duplicato correttamente nonostante le 2 problematiche indicate nel primo post...
    Potresti indicare:
    - nome proprio di maschera (non si capisce se c'è anche una sottomaschera)
    - nome proprio di casella combinata
    - dove va a pescare i valori la casella combinata
    la maschera si chiama ARTICOLI, la casella CERCACOLORE ed ha come origine la tabella COLORI composta da ID e COLORE dove id è relazionata 1 a molti sulla tabella ARTICOLI sul campo COLORE (numerico)

    La maschera in questione è contenuta in una struttura a schede, ma non credo che questo ne influenzi la funzionalità.
    Ah non l'ho specificato nel primo post, Access è in versione 2016
  • Re: Duplica record strano...

    nickbi78 ha scritto:


    La casella CERCACOLORE ed ha come origine la tabella COLORI composta da ID e COLORE dove id è relazionata 1 a molti sulla tabella ARTICOLI sul campo COLORE (numerico)
    Gradirei tu fossi preciso su questo. Il campo sottostante la casella combinata è IDCOLORE o COLORE? Sicuro che il campo COLORE sia numerico? Sicuro che la relazione è Colori.COLORE uno-a-molti ARTICOLI.COLORE? Se sì perchè non hai preferito relazionare con il campo IDCOLORE?
  • Re: Duplica record strano...

    Gradirei tu fossi preciso su questo. Il campo sottostante la casella combinata è IDCOLORE o COLORE? Sicuro che il campo COLORE sia numerico?
    La casella combinata contiene tutto il contenuto della tabella COLORI, ovvero IDCOLORE (contatore) che COLORE (TESTO), quindi 2 colonne, la prima a larghezza 0 (non visibile) e la seconda testuale visibile e ti assicuro che la ricerca x colore dalla casella combinata in questione funziona perfettamente come anche l'associazione dei colori agli articoli.
    Sicuro che la relazione è Colori.COLORE uno-a-molti ARTICOLI.COLORE? Se sì perchè non hai preferito relazionare con il campo IDCOLORE?
    il tutto, come indicato sopra funziona alla perfezione e le risposte stanno deviando la questione che ho aperto...
    voglio capire solo perchè alla duplicazione del record si comporta così, non come ho strutturato il mio DB.
  • Re: Duplica record strano...

    OK su come hai strutturato la casella combinata.
    Non mi tornano varie cose:
    1. L'immagine che hai postato (a me) sembra più una maschera/sottomaschera. I campi Prezzo, IVA ecc...non sono congruenti con tabella Articoli. Puoi chiarire cosa vuoi ottenere? Su quale tabella avviene l'Append?
    2. Quando tu digiti/selezioni un IDCOLORE...in quel preciso momento la casella combinata mostra correttamente la lista Colori, sì o no? Io ho capito sì e poi appaiono quei simboli strani. Desidero una descrizione passo passo, punto per punto.
    3. Hai parlato delle sole tabelle Colori e Articoli. Così come per il punto 1. mi manca all'appello qualcosaltro per inquadrare a più ampio respiro tutto lo scenario.
  • Re: Duplica record strano...

    1. L'immagine che hai postato (a me) sembra più una maschera/sottomaschera. I campi Prezzo, IVA ecc...non sono congruenti con tabella Articoli. Puoi chiarire cosa vuoi ottenere? Su quale tabella avviene l'Append?
    non si tratta di struttura maschera/sottomaschera, la maschera è unica, ho solo messo un colore diverso alla sezione intestazione della maschera.
    La stessa ha come origine la tabella Articoli, non direttamente la tabella ma una query con tutti i campi della tabella, alcuni di questi (tra cui colore) sono parametrizzati su campi ricerca (tra cui colore) ed effettuano i filtri in base al valore scelto, ma, ripeto, il tuto è funzionale al 101% nell'utilizzo di filtri, ricerche, inserimenti ed eliminazioni record
    2. Quando tu digiti/selezioni un IDCOLORE...in quel preciso momento la casella combinata mostra correttamente la lista Colori, sì o no? Io ho capito sì e poi appaiono quei simboli strani.
    si, i valori corrispondono esattamente a quelli che sono presenti in tabella colore, i simboli in questione compaiono nella casella solo dopo aver duplicato il record e non vengono memorizzati in tabella, se li cancello il tutto torna a funzionare
    Desidero una descrizione passo passo, punto per punto.
    3. Hai parlato delle sole tabelle Colori e Articoli. Così come per il punto 1. mi manca all'appello qualcosaltro per inquadrare a più ampio respiro tutto lo scenario.
    e qui credo di aver illustrato già quanto dovuto...
    leggevo su ricerche fatte online (credo di aver visto anche un post di questo forum) che la comparsa di questo tipo di simbolo può indicare una probabile corruzione delle tabelle, ma mi fa strano che nel complesso tutto funzioni tutto regolarmente
  • Re: Duplica record strano...

    nickbi78 ha scritto:


    La stessa ha come origine la tabella Articoli, non direttamente la tabella ma una query con tutti i campi della tabella
    Questa cosa mi lascia perplesso. Le query "generalmente" vanno usate per "restituire" valori. Io malvolentieri uso le query per inserire, modificare, cancellare dati. Tra l'altro, se una query è "relativamente" complessa, non può assolutamente assolvere a questi tipi di operazioni.
    Per me, quello che vuoi fare, puoi applicarlo solo su maschera che poggia su tabella.
  • Re: Duplica record strano...

    nickbi78 ha scritto:


    1) nel campo di ricerca x colore, che è una casella combinata che contiene il campo colore da cui vengono filtrati appunto gli articoli per colore, vengono scritti caratteri asiatici random come da foto allegate generando l'errore sempre presente in una delle immagini allegate (dovuto al fatto che questo testo "misterioso" non corrisponde ad una voce di elenco)
    Nella struttura della tabella, nella scheda "Ricerca" di quel campo hai impostato casella combinata o casella di riepilogo?
  • Re: Duplica record strano...

    Se parti dalla visualizzazione di tutti i Dati, con la possibilità di FILTRARE... usare una Query è disfunzionale.
    Devi scrivere una Queri con Molti riferimenti a controlli di Selezione, e prevedere un condizionamento in caso il Criterio sia NULLO.
    Questo rende il tutto estremamente LENTO in quanto l'inserimento della Verifica del NULL al fine di NON attivare il criterio in realtà implica un lavoro doppio per i dati che ad ogni RECORD deve VALUTARE l'epressione di validazione in OR o in AND con tutti gli altri...!

    Quindi la logica da usare per situazioni con Filtri Molteplici è differente, e l'efficienza si ottiene se in assenza di CRITERIO non si mette la condizione e si agisce sulla proprietà FILTER della Maschera.

    Si lavora in questo modo: [Code] Dim strWH As String If Len(Me!Controllo1.Value & vbNullstring)>0 Then strWH=strWH & "Campo1=" & Me!Controllo1.Value& " AND " If Len(Me!Controllo2.Value & vbNullstring)>0 Then strWH=strWH & "Campo2=" & Me!Controllo2.Value & " AND " .... ' aggiungi le altre 1000 condizioni... If Len(strWH)>0 then strWH=Mid$(strWH,1,Len(strWH)-5) Me.Filter=strWH Me.FilterON=True Questo approccio risulta poi comodo se devi passare il Criterio ad un eventuale Report...

    Detto questo, non è vero che le Query NON si usano per INSERIMENTI/MODIFICHE e non è vero che se sono complesse NON consentono INSERIMENTI/MODIFICHE come ha detto Osvaldo.
    Le query hanno delle casistiche che le rendono READONLY, ma queste casistiche sono BEN note a chi è pratico, e vengono riassunte in questa lista:
    http://allenbrowne.com/ser-61.htm
  • Re: Duplica record strano...

    Grazie Alex per la delucidazione,
    in passato in effetti mi è spesso capitato di ritrovarmi in situazioni "bloccanti" perchè le maschere avevano origine da da più tabelle/query collegate tra loro che la rendevano read-only.
    So che sono soluzioni da macellaio, ma quando ho queste situazioni preferisco generare una nuova tabella completa di tutti i dati e passarla come origine a maschere permettendomi di avere mobilità completa.

    per quanto riguarda la problematica esposta, sapresti indicarmi la motivazione per cui il codice oltre a duplicare il record selezionato ne crea anche uno vuoto? ed anche la questione dei simboli asiatici?
  • Re: Duplica record strano...

    No servirebbe un DEMO per analizzare.
  • Re: Duplica record strano...

    nickbi78 ha scritto:


    ... la motivazione per cui il codice oltre a duplicare il record selezionato ne crea anche uno vuoto? ed anche la questione dei simboli asiatici?
    Come ha detto @Alex, a questo punto servirebbe un file da vedere e lavorarci su.
    L'unica cosa che ho potuto fare è stata cercare una situazione simile alla tua

    in cui, alla fine, sembra che la soluzione sia arrivata cambiamo completamente strada, con l'aiuto di quanto indicato da Allen Browne per la duplicazione di record tra maschera e sottomaschera

    Forse puoi trovare qualche spunto.
  • Re: Duplica record strano...

    Grazie @Philcattivocarattere
    ho visto solo ora la tua risposta.
    vedo di applicarla o nel caso cambiare metodo.
Devi accedere o registrarti per scrivere nel forum
13 risposte