Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Situazione Complessa: Impossibile passare al record specificato

355 views
Skip to first unread message

mbic...@yahoo.it

unread,
Dec 27, 2006, 5:23:08 AM12/27/06
to
Ciao a tutti!!!

Vi scrivo perchè sono due giorni che sono bloccato con un problema e
sinceramente inizio a disperare...

Vi illustro la situazione che per me è un bel po' complessa, cercherò
di essere chiaro.

Ho una maschera basata su di una SELECT, visto che le informazioni sono
tratte da due tabelle.
Per effettuare l'inserimento vista la situazione faccio eseguire da
codice due INSERT una per tabella.

Al momento dell'apertura della tabella ho inserito il codice per far
posizionare la maschera sul primo record con la seguente istruzione:

DoCmd.GoToRecord , , acFirst

e tutto funziona a dovere.

I problemi nascono al momento di salvare, dopo aver eseguito le INSERTs
infatti, anche qui dovrebbe eseguire l'istruzione che ho scritto sopra
ma mi restituisce l'errore in oggetto:

"Impossibile passare al record specificato"

Avete qualche suggerimento in proposito?

Grazie in anticipo per l'aiuto!!

Marco (Uno veramente scarso!!)

VT @ Work

unread,
Dec 27, 2006, 5:45:47 AM12/27/06
to
On 27 Dec 2006 02:23:08 -0800, "mbic...@yahoo.it" <mbic...@yahoo.it>
wrote:
(...)

>Ciao a tutti!!!
>
>Vi scrivo perch=E8 sono due giorni che sono bloccato con un problema e
>sinceramente inizio a disperare...
>
>Vi illustro la situazione che per me =E8 un bel po' complessa, cercher=F2


>di essere chiaro.
>
>Ho una maschera basata su di una SELECT, visto che le informazioni sono
>tratte da due tabelle.
>Per effettuare l'inserimento vista la situazione faccio eseguire da
>codice due INSERT una per tabella.
>
>Al momento dell'apertura della tabella ho inserito il codice per far
>posizionare la maschera sul primo record con la seguente istruzione:
>
>DoCmd.GoToRecord , , acFirst
>
>e tutto funziona a dovere.
>
>I problemi nascono al momento di salvare, dopo aver eseguito le INSERTs
>infatti, anche qui dovrebbe eseguire l'istruzione che ho scritto sopra
>ma mi restituisce l'errore in oggetto:
>
>"Impossibile passare al record specificato"
>
>Avete qualche suggerimento in proposito?
>
>Grazie in anticipo per l'aiuto!!
>
>Marco (Uno veramente scarso!!)
>

Subito dopo la INSERT e prima del posizionamento sul primo record,
prova ad eseguire la seguente istruzione:

me.refresh

Questo fa sì che gli aggiornamenti effettuati sulle tabelle che
costituiscono l'origine record del form vengano effettivamente "visti"
dal form medesimo.

mbic...@yahoo.it

unread,
Dec 27, 2006, 6:03:34 AM12/27/06
to

VT @ Work ha scritto:

Ciao e grazie mille per l'aiuto!

Prima mi è sfuggito di aggiungerlo... era anche per questo che ho
scritto che la situazione mi sembrava complessa...

Ho provato ad inserire istruzioni come Me.Refresh o Me.Requery, ma mi
restituisce il seguente errore:

"Il modulo di gestione di database Microsoft Jet non è in grado di
trovare alcun record nella tabella "MODELLO" contenente campi
"Cda_Modello" corrispondenti alla chiave."

La situazione mi sembra proprio ingarbugliata e non so come venirne a
capo... :'(

Qualche suggerimento?

Alessandro Cara

unread,
Dec 27, 2006, 6:15:53 AM12/27/06
to
A me non sembra "ingarbugliata". Access ti sta dicendo che sulla tabella
MODELLO non c'e' il campo cda_modello. In genere ha ragione. Questo
spiegherebbe perche' non fa acFirst. Sei sicuro di non avre modificato
la sorgente dati del form?


--
ac
y-1=x

mbic...@yahoo.it

unread,
Dec 27, 2006, 6:32:05 AM12/27/06
to

Alessandro Cara ha scritto:

Ciao,

non metto in discussione ciò che dice access, ho avuto modo di
appurare che quando un pc da un errore ha sempre ragione... volenti o
nolenti... :(

Quello che mi fa sembrare la situazione ingarbugliata è che il campo
Cda_modello è presente nella tabella MODELLI, anzi è chiave e poi se
il problema fosse questo mi dovrebbe dare errore anche all'apertura
della maschera, quando cioè valorizza i campi per la prima volta, no?

mbic...@yahoo.it

unread,
Dec 27, 2006, 6:37:08 AM12/27/06
to

mbic...@yahoo.it ha scritto:

Oltretutto, all'inizio, una volta caricati i dati, mi funzionano
tranquillamente anche i tasti per lo scorrimento tra record...

Il mio dubbio è che ci sia qualcosa che in fase di salvataggio... Tipo
che si ingarbuglia dopo che ho che esegue gli INSERT...

Infatti la prima cosa che sono andato a provare è stato, come
suggeritomi anche da VT @ Work, di far refreshare la query...

Alessandro Cara

unread,
Dec 27, 2006, 6:40:18 AM12/27/06
to
Uhmm MODELLO? MODELLI? Quale delle due?
Avevo scritto se per caso non modifichi "on fly" la sorgente dati.
Questo proprio perche' la prima volta fa tutto in modo corretto.

--
ac
y-1=x

mbic...@yahoo.it

unread,
Dec 27, 2006, 6:47:08 AM12/27/06
to

On 27 Dic, 12:40, Alessandro Cara <alessandro.c...@ay-1asistemi.it>
wrote:


> mbico...@yahoo.it wrote:
> > Alessandro Cara ha scritto:
>

> >> mbico...@yahoo.it wrote:
> >>> VT @ Work ha scritto:
>

> >>>> On 27 Dec 2006 02:23:08 -0800, "mbico...@yahoo.it" <mbico...@yahoo.it>

> > della maschera, quando cioè valorizza i campi per la prima volta, no?Uhmm MODELLO? MODELLI? Quale delle due?


> Avevo scritto se per caso non modifichi "on fly" la sorgente dati.
> Questo proprio perche' la prima volta fa tutto in modo corretto.
>
> --
> ac
> y-1=x

Ops... va beh intendevo Modello, errore di battitura.. ho provato già
a verificare se nel codice o in qualche altra parte ci fossero stati
degli errori del genere...

Che intendi per "on fly"?

Alessandro Cara

unread,
Dec 27, 2006, 6:49:54 AM12/27/06
to

Intendo se nel codice, da qualche parte, fai qualcosa come:
Me.Recordsource = "blabla".
Lo sai usare il debug?

--
ac
y-1=x

mbic...@yahoo.it

unread,
Dec 27, 2006, 6:58:02 AM12/27/06
to

On 27 Dic, 12:49, Alessandro Cara <alessandro.c...@ay-1asistemi.it>

> > Che intendi per "on fly"?Intendo se nel codice, da qualche parte, fai qualcosa come:


> Me.Recordsource = "blabla".
> Lo sai usare il debug?
>
> --
> ac
> y-1=x

Ok... scusa ma er per capire se avevo capito bene... no non faccio
modifiche del genere...

Il Debug? What's debug? No sinceramente non so usarlo...

Alessandro Cara

unread,
Dec 27, 2006, 7:29:13 AM12/27/06
to
mbic...@yahoo.it wrote:
[cut]

>
> Ok... scusa ma er per capire se avevo capito bene... no non faccio
> modifiche del genere...
>
> Il Debug? What's debug? No sinceramente non so usarlo...
Questo e' male. Senza usare il debug per fare qualsiasi cosa ci si mette
una eternita'!

1) Alt+F11 --> Va sul codice visual basic
2) Click sulla banda grigia di una istruzione eseguibile --> appare un
punto colorato che identifica il breakpoint (altro click si toglie)
3) Si esegue il programma
4) se il programma passa dalla istruzione il sistema si blocca su quella
istruzione
5) Con il tasto F8 si va avanti di una istruzione alla volta con il
tasto F5 si esegue fino al prossimo breakpoint.
6) Si possono visualizzare le variabili locali ("Me" e le dim tanto per
capirci). Se la variabile e' un oggetto compare una icona con un "+" se
si fa click sul "+" l'oggetto viene aperto e si scopre un mondo
7) Si puo' vedere cosa c'e' in una variabile in quel momento e
8) Si puo' modificare i valori delle variabili

Ergo con il debug puoi vedere cosa c'e' esttamente nel RecordSource
quando il sistema va in errore

--
ac
y-1=x

mbic...@yahoo.it

unread,
Dec 27, 2006, 7:43:34 AM12/27/06
to

On 27 Dic, 13:29, Alessandro Cara <alessandro.c...@ay-1asistemi.it>
wrote:
> mbico...@yahoo.it wrote:[cut]


>
> > Ok... scusa ma er per capire se avevo capito bene... no non faccio
> > modifiche del genere...
>

> > Il Debug? What's debug? No sinceramente non so usarlo...Questo e' male. Senza usare il debug per fare qualsiasi cosa ci si mette


> una eternita'!
>
> 1) Alt+F11 --> Va sul codice visual basic
> 2) Click sulla banda grigia di una istruzione eseguibile --> appare un
> punto colorato che identifica il breakpoint (altro click si toglie)
> 3) Si esegue il programma
> 4) se il programma passa dalla istruzione il sistema si blocca su quella
> istruzione
> 5) Con il tasto F8 si va avanti di una istruzione alla volta con il
> tasto F5 si esegue fino al prossimo breakpoint.
> 6) Si possono visualizzare le variabili locali ("Me" e le dim tanto per
> capirci). Se la variabile e' un oggetto compare una icona con un "+" se
> si fa click sul "+" l'oggetto viene aperto e si scopre un mondo
> 7) Si puo' vedere cosa c'e' in una variabile in quel momento e
> 8) Si puo' modificare i valori delle variabili
>
> Ergo con il debug puoi vedere cosa c'e' esttamente nel RecordSource
> quando il sistema va in errore
>
> --
> ac
> y-1=x

Mitico!!! Ora me lo studio un pochino... io sinceramente non conoscendo
il debugger, mi sono attrezzato artigianalmente con 10000 msgbox!!

Con queso strumento ho verificato anche cosa c'è esattamente nel
recordsource prima dell'errore, ed la situazione essere ok ....

L'unico dubbio che mi sorge è il seguente...

Il resourcerecord glielo assegno via codice inserendo direttamente la
query per capirci:

Me.RecordSource = "SELECT MODELLO.Cda_Cliente, MODELLO.Prog_Stagione,
MODELLO.Cda_Style, DETTAGLIO_MODELLO.Num_prog,
DETTAGLIO_MODELLO.Cda_Modello, DETTAGLIO_MODELLO.Cda_Fase,
DETTAGLIO_MODELLO.Des_Tessuto, DETTAGLIO_MODELLO.Cda_Colore,
DETTAGLIO_MODELLO.Des_Note_Generiche, DETTAGLIO_MODELLO.Des_Note_Filo,
DETTAGLIO_MODELLO.Des_Note_Tessuto, DETTAGLIO_MODELLO.Path_Foto FROM
MODELLO LEFT JOIN DETTAGLIO_MODELLO ON
MODELLO.Cda_modello=DETTAGLIO_MODELLO.Cda_Modello WHERE
(DETTAGLIO_MODELLO.Cda_Fase= '" & Form_MAIN.Mod_status.Value & "');"

questo può dar noia?

Alessandro Cara

unread,
Dec 27, 2006, 9:40:23 AM12/27/06
to
Se hai verificato. Copia e incolla la query sulla finestra query di
access ed eseguila. Se c'e' un errore lo scopri.
Personalmente avrei generato e salvato una query escludendo la where
poi sul recordsource avrei scritto "Select * from querysalvata " & "
where " & criterio

Per fortuna mi hai scriito che non modificavi il recordsource!
In che fase lo "riassegni"?


--
ac
y-1=x

mbic...@yahoo.it

unread,
Dec 28, 2006, 3:26:54 AM12/28/06
to

Alessandro Cara ha scritto:

Buongiorno,

la query funziona, il test che mi hai consigliato già lo avevo
fatto...

Ma la soluzione che mi proponi te che vantaggi ha rispetto al
specificare tutta la query come ho fatto io?

L'assegnazione al recordsource la faccio su Form Load...

Che casino non so proprio dove sbattere la testa...

Alessandro Cara

unread,
Dec 28, 2006, 7:32:45 AM12/28/06
to
Nessuno. Forse la possibilita' di intervenire sulla query

>
> L'assegnazione al recordsource la faccio su Form Load...
>
> Che casino non so proprio dove sbattere la testa...
>
Normalmente ci sono gli spigoli dei muri
Ovviamente sto scherzando ;<)
Una cosa che in genere non faccio. Potresti mandarmi il db (compresso e
magari solo la parte che interessa se e' facile estrarla) e ti ci do
un'occhiata. La email e' quella del post, dopo debita modifica indicata
in firma

--
ac
y-1=x

mbic...@yahoo.it

unread,
Dec 28, 2006, 9:36:19 AM12/28/06
to

Alessandro Cara ha scritto:

Alessandro, ti è arrivata la mail?

Alessandro Cara

unread,
Dec 28, 2006, 10:42:36 AM12/28/06
to
Si e ti ho risposto.

Il problema e' questo:
Hai una form che in "quel" momento e' associata. Il sistema tenta di
consolidare i dati, per tua sfortuna e' una query aggiornabile, e quindi
non ti ha dato il classico "c'e' bisogno di una query aggiornabile".
Nei campi della query e' si presente cda_modello ma e' quello relativo a
Dettaglio_Modello e gli "manca" quindi il campo modello.cda_modello.
Poiche' il campo e' chiave primaria ne sente fortemente la mancanza.
Il problema che hai e' quindi logico: o disassoci il form oppure elimini
le insert e ti fai fare l'aggiornamento sulla tabella dal form associato.
Per "trappare" l'errore ho inserito una piccola routine in
Form_BeforeUpdate e quando ci e' passato (breakpoint! duiurimenbar?) mi
e' scattato il campanello.
Spero che il problema ti sia chiaro.
Ahhhh...... ho beccato un paio di errorucci (quando mi ci metto so
essere abbastanza "utonto") ma quelli te li vedrai da solo in seguito.
Avevo piu' o meno capito il tipo di applicazione che stavi facendo ne ho
appena consegnata una un po' piu' complessa, in compenso la tua e' piu'
carina.
Secondo me associare un colore ad un modello e' riduttivo. Un modello
dovrebbe avere, forse, piu' colori e/o taglie possibili. E le taglie
hanno diversi sistemi.


--
ac
y-1=x

mbic...@yahoo.it

unread,
Dec 28, 2006, 11:25:03 AM12/28/06
to

Alessandro Cara ha scritto:

Miiiiii!!!!! Grazie!!!!!!!!!!!!!!!!!!!!!! Non ci sarei mai riuscito da
solo....

Mi sembra di aver capito il problema... Forse è una domanda stupida...
ma se aggiungessi il campo modelli.cda_modello alla query? La presenza
dei entrambi i campi cda_modello potrebbe dar problemi?

Altrimenti se volessi volessi togliere la insert come faccio a far fare
l'aggiornamento alla maschera?

Che vuol dire "trappare"? Si che mi ricordo del debug!! Ho iniziato
anche ad usarlo ma ancora non ho grande confidenza con esso...

Per gli errorucci muoio dalla curiosità di conoscerli... :-)

Anche a me non piace come soluzione quella di un semplice colore... ma
per il momento ho preferito gestirla sono un po' in ritardo con la
consegna per cui punto ha rilasciare un prima versione, poi si
vedrà...

Come prima applicazione credimi che è veramente un bel massacro!!
L'unica cosa dove posso alzare un po' la media è la grafica per cui
li ci spingo forte!!!

Grazie ancora...

Alessandro Cara

unread,
Dec 28, 2006, 12:49:35 PM12/28/06
to
mbic...@yahoo.it wrote:
> Alessandro Cara ha scritto:
[cut]intanto tagliamo un po' di roba che non serve piu'

Devi aggiungere tutti i campi che ti servono per le due tabelle.
Per i campi duplicati, come appunto cda_modello, ne nascondi uno, ti
devi ricordare di valorizzarlo via codice


>
> Altrimenti se volessi volessi togliere la insert come faccio a far fare
> l'aggiornamento alla maschera?

La maschera, se associata, l'aggiornamento lo fa in automatico ed e'
infatti proprio per questo motivo stai in "errore".

>
> Che vuol dire "trappare"? Si che mi ricordo del debug!! Ho iniziato
> anche ad usarlo ma ancora non ho grande confidenza con esso...

e' l'inglesismo per "intrappolare" l'errore

>
> Per gli errorucci muoio dalla curiosità di conoscerli... :-)

Vai in inserimento, "sporca" il record e poi premi uscita e conferma
l'annullamento dati. Vedi che succede


Ahhh...... in fase di test ti consiglio di definire la maschere "non" a
risposta obbligatoria. In questo modo ti consente eventualmente di
verificare dati sul db o lanciare query di "servizio"

>
> Anche a me non piace come soluzione quella di un semplice colore... ma
> per il momento ho preferito gestirla sono un po' in ritardo con la
> consegna per cui punto ha rilasciare un prima versione, poi si
> vedrà...
>
> Come prima applicazione credimi che è veramente un bel massacro!!

I massacri sono all'ordine del giorno. Ormai il software deve essere
gratis e consegnato tutto superfunzionante esttamente cinque minuti dopo
che ci hanno fatto il favore di dimostrare che siamo in grado di fare
una applicazione. Questo che sia la prima o la millesima.

> L'unica cosa dove posso alzare un po' la media è la grafica per cui
> li ci spingo forte!!!


>
> Grazie ancora...
>


--
ac
y-1=x

mbic...@yahoo.it

unread,
Dec 29, 2006, 3:39:53 AM12/29/06
to

Alessandro Cara ha scritto:

FUNZIONA!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Che spettacolo!! E' come se avessi scalato il k2!! Non sto esagerando
ma erano veramente 3 gg che stavo bloccato con sto prob!!

Grazie infinitamente!!!

L'errore che hai trovato già lo conoscevo.. ma lo avevo trascurato...
ho creato una funzione annulla che dovrebbe gestire il bottone indietro
in tutte le maschere ma come vedi non lavora ancora alla perfezione....
comunque grazie per l'indicazione...

Grazie anche per la dritta sui campi "non" a risposta obbligatoria...
ne farò tesoro...

L'affermazione che questa applicazione fosse un massacro era dovuto al
fatto che io sono un sistemista e che sto sviluppando sto db a tempo
perso per una signora che conosco... per cui ho poco tempo per
dedicarmici e quel poco che ho spesso lo perdo per riprendere il filo
del discorso... conta che in questi giorni sarei in ferie ma sto
lavorando dalla mattina alla sera a questo... e un po' pesa...

Ad ogni modo grazie ancora!! Per avermi aiutato nel risolvere il
problema, per tutte le dritte che mi hai dato e per avermi illuminato
sul quello strumento potentissimo che è il debug!!

Ciao e un augurio di un meravoglioso 2007!!

0 new messages