Discussione:
db.OpenRecordset(sSqlBa, dbOpenDynaset, dbSeeChanges) <----- runtime 13 - tipo dati non corrispondete
(troppo vecchio per rispondere)
pfmarro
2020-08-26 15:37:39 UTC
Permalink
salve
ho creato una stringa SQL per filtrare un record di una tabella

ha sempre funzionato
ora non capisco perche' se la copio nel debug la stringa SQL e la incollo una ina query la query funziona
da codice mi dà tpye


sSqlBaNAV = "SELECT TabItemGroup.Conformity, [myTable].* " & _
"FROM myTable LEFT JOIN TabItemGroup ON [myTable].NombreProd = TabItemGroup.NombreProd " & _
"WHERE([myTable].IDBa) = " & BaID
Set rsBaNAV = db.OpenRecordset(sSqlBa, dbOpenDynaset, dbSeeChanges) <----- runtime 13 - tipo dati non corrispondete

potete aiutarmi?

ho anche provato a creare una query vera e propria e porvarla da aprire ma lo stesso
Karl Donaubauer
2020-08-26 16:16:47 UTC
Permalink
Salve,
Post by pfmarro
ho creato una stringa SQL per filtrare un record di una tabella
ha sempre funzionato
ora non capisco perche' se la copio nel debug la stringa SQL e la incollo una ina query la query funziona
da codice mi dà tpye
sSqlBaNAV = "SELECT TabItemGroup.Conformity, [myTable].* " & _
"FROM myTable LEFT JOIN TabItemGroup ON [myTable].NombreProd = TabItemGroup.NombreProd " & _
"WHERE([myTable].IDBa) = " & BaID
Set rsBaNAV = db.OpenRecordset(sSqlBa, dbOpenDynaset, dbSeeChanges) <----- runtime 13 - tipo dati non corrispondete
potete aiutarmi?
ho anche provato a creare una query vera e propria e porvarla da aprire ma lo stesso
Sei nuovo qui, ;-) però manca un po' d'informazione:

Di quale tipo di dati sono [myTable].IDBa e BaID?
Cos'è BaID? Variabile, controllo, campo... Come è definito?

È uno sbaglio solo qui nel post che prima usi "sSqlBaNAV" e poi "sSqlBa"?
--
Ciao
Karl
*********
http://AccessDevCon.com
Access FAQ: http://donkarl.com/it
@Alex
2020-08-27 05:52:04 UTC
Permalink
Post by pfmarro
salve
ho creato una stringa SQL per filtrare un record di una tabella
ha sempre funzionato
ora non capisco perche' se la copio nel debug la stringa SQL e la incollo una ina query la query funziona
da codice mi dà tpye
sSqlBaNAV = "SELECT TabItemGroup.Conformity, [myTable].* " & _
"FROM myTable LEFT JOIN TabItemGroup ON [myTable].NombreProd = TabItemGroup.NombreProd " & _
"WHERE([myTable].IDBa) = " & BaID
Set rsBaNAV = db.OpenRecordset(sSqlBa, dbOpenDynaset, dbSeeChanges) <----- runtime 13 - tipo dati non corrispondete
potete aiutarmi?
ho anche provato a creare una query vera e propria e porvarla da aprire ma lo stesso
Magari mi sono perso io un pezzo della storia... ma deduco tu abbia un RDBMS come Server e non JET... dal momento che usi [dbSeeChanges]
Per usare questa "opzione" la tabella deve avere un campo IDENTITY

@Alex
pfmarro
2020-08-27 06:43:53 UTC
Permalink
Post by @Alex
Post by pfmarro
salve
ho creato una stringa SQL per filtrare un record di una tabella
ha sempre funzionato
ora non capisco perche' se la copio nel debug la stringa SQL e la incollo una ina query la query funziona
da codice mi dà tpye
sSqlBaNAV = "SELECT TabItemGroup.Conformity, [myTable].* " & _
"FROM myTable LEFT JOIN TabItemGroup ON [myTable].NombreProd = TabItemGroup.NombreProd " & _
"WHERE([myTable].IDBa) = " & BaID
Set rsBaNAV = db.OpenRecordset(sSqlBa, dbOpenDynaset, dbSeeChanges) <----- runtime 13 - tipo dati non corrispondete
potete aiutarmi?
ho anche provato a creare una query vera e propria e porvarla da aprire ma lo stesso
Magari mi sono perso io un pezzo della storia... ma deduco tu abbia un RDBMS come Server e non JET... dal momento che usi [dbSeeChanges]
Per usare questa "opzione" la tabella deve avere un campo IDENTITY
@Alex
grazie a tutti 2 del messaggio

in effetti sono tabelle SQL collegate a un frontEnd di access
in una maschera singola faccio inserire un valore nella casella di testo BaID

ho sempre eseguito una procedura per recuparare dei dati

sSqlBa = "SELECT TabItemGroup.Conformity, [myTable].* " & _
"FROM myTable LEFT JOIN TabItemGroup ON [myTable].NombreProd = TabItemGroup.NombreProd " & _
"WHERE([myTable].IDBa) = " & BaID
Set rsBaNAV = db.OpenRecordset(sSqlBa, dbOpenDynaset, dbSeeChanges)

ora in debug se mi visualizzo la stringa sSqlBa appena costruita e con una query controllo se funziona
e in effetti non ci sono problemi

ora invace da codice mi dà errore
Ammammata
2020-08-27 06:45:35 UTC
Permalink
Il giorno Wed 26 Aug 2020 05:37:39p, *pfmarro* ha inviato su
it.comp.appl.access il messaggio news:a8d27402-534a-44c9-9b31-
Post by pfmarro
"WHERE([myTable].IDBa) = " & BaID
qui potrebbero mancare degli apici, ma non dici come sono configurate le
variabili

"WHERE([myTable].IDBa) = '" & BaID & "'"
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
pfmarro
2020-08-27 10:12:36 UTC
Permalink
Post by Ammammata
Il giorno Wed 26 Aug 2020 05:37:39p, *pfmarro* ha inviato su
it.comp.appl.access il messaggio news:a8d27402-534a-44c9-9b31-
Post by pfmarro
"WHERE([myTable].IDBa) = " & BaID
qui potrebbero mancare degli apici, ma non dici come sono configurate le
variabili
"WHERE([myTable].IDBa) = '" & BaID & "'"
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
no grazie dell'interessamento

ecco la stringa che estrapolo del debug e che incollata

SELECT ItemGroup.Conformity, [_pfm].*
FROM _pfmBallotti_NAV_PET AS _pfm LEFT JOIN TabItemGroup AS ItemGroup ON [_pfm].NombreProd = ItemGroup.NombreProd
WHERE ((([_pfm].IDBallotto)=1001901727));

se lancio la query vedo il record
da VBA se

Set rsBaNAV = db.OpenRecordset(sSqlBa, dbOpenDynaset, dbSeeChanges) <----- runtime 13 - tipo dati non corrispondete

potrebbe essere un recordset grande?

oltretutto mi servirebbe anche in sola lettura per popolare delle caselle di testo in base ai valori di campi
@Alex
2020-08-27 11:30:14 UTC
Permalink
...
Post by pfmarro
no grazie dell'interessamento
ecco la stringa che estrapolo del debug e che incollata
SELECT ItemGroup.Conformity, [_pfm].*
FROM _pfmBallotti_NAV_PET AS _pfm LEFT JOIN TabItemGroup AS ItemGroup ON [_pfm].NombreProd = ItemGroup.NombreProd
WHERE ((([_pfm].IDBallotto)=1001901727));
se lancio la query vedo il record
da VBA se
Set rsBaNAV = db.OpenRecordset(sSqlBa, dbOpenDynaset, dbSeeChanges) <----- runtime 13 - tipo dati non corrispondete
potrebbe essere un recordset grande?
oltretutto mi servirebbe anche in sola lettura per popolare delle caselle di testo in base ai valori di campi
Se prendi quel Predicato e lo incolli in QBE, aprendolo cosa dice...?
Se Visualizzi tutto il problema è molto sicuramente nella modalità dbSeeChanges, ed a quel punto ricordo la questione del campo Identity.

@Alex
pfmarro
2020-08-27 15:04:19 UTC
Permalink
Post by @Alex
...
Post by pfmarro
no grazie dell'interessamento
ecco la stringa che estrapolo del debug e che incollata
SELECT ItemGroup.Conformity, [_pfm].*
FROM _pfmBallotti_NAV_PET AS _pfm LEFT JOIN TabItemGroup AS ItemGroup ON [_pfm].NombreProd = ItemGroup.NombreProd
WHERE ((([_pfm].IDBallotto)=1001901727));
se lancio la query vedo il record
da VBA se
Set rsBaNAV = db.OpenRecordset(sSqlBa, dbOpenDynaset, dbSeeChanges) <----- runtime 13 - tipo dati non corrispondete
potrebbe essere un recordset grande?
oltretutto mi servirebbe anche in sola lettura per popolare delle caselle di testo in base ai valori di campi
Se prendi quel Predicato e lo incolli in QBE, aprendolo cosa dice...?
Se Visualizzi tutto il problema è molto sicuramente nella modalità dbSeeChanges, ed a quel punto ricordo la questione del campo Identity.
@Alex
se in access creo una query e incollo l'SQL funziona

ho provato a togliere dbseechage ma mi dà lo stesso errore
@Alex
2020-08-27 15:18:04 UTC
Permalink
....
Post by pfmarro
se in access creo una query e incollo l'SQL funziona
ho provato a togliere dbseechage ma mi dà lo stesso errore
Cosa significa "Se in Access"...?

Questo codice dove gira...?
sSqlBaNAV = "SELECT TabItemGroup.Conformity, [myTable].* " & _
"FROM myTable LEFT JOIN TabItemGroup ON [myTable].NombreProd = TabItemGroup.NombreProd " & _
"WHERE([myTable].IDBa) = " & BaID
Set rsBaNAV = db.OpenRecordset(sSqlBa, dbOpenDynaset, dbSeeChanges) <----- runtime 13 - tipo dati non corrispondete

L'oggetto [db] cosa sarebbe...? Se è CurrentDB, allora fare la Query da QBE o in questo modo, togliendo [dbSeeChanges] non deve cambiare NULLA.

Sei ovviamente certo di aver dichiarato in modo ESPLICITO i Recordset come DAO.RecordSet e l'oggetto [db[] come DAO.Database... questo perchè se nei riferimenti hai anche ADO se non curi la priorità di LIB

Insomma quanto denunci appare sempre meno chiaro e sempre più attribuibile a qualche errore di base che non mostri, sicuramente non dipendente da questo codice, escluso sempre il [dbSeeChanges] che è l'unico parametro ragionevolmente di differenza da QBE.

Ti suggerisco di allargare un po lo sguardo sulle dichiarazioni degli Oggetti.

@Alex
pfmarro
2020-08-27 16:20:41 UTC
Permalink
Post by @Alex
...
Post by pfmarro
no grazie dell'interessamento
ecco la stringa che estrapolo del debug e che incollata
SELECT ItemGroup.Conformity, [_pfm].*
FROM _pfmBallotti_NAV_PET AS _pfm LEFT JOIN TabItemGroup AS ItemGroup ON [_pfm].NombreProd = ItemGroup.NombreProd
WHERE ((([_pfm].IDBallotto)=1001901727));
se lancio la query vedo il record
da VBA se
Set rsBaNAV = db.OpenRecordset(sSqlBa, dbOpenDynaset, dbSeeChanges) <----- runtime 13 - tipo dati non corrispondete
potrebbe essere un recordset grande?
oltretutto mi servirebbe anche in sola lettura per popolare delle caselle di testo in base ai valori di campi
Se prendi quel Predicato e lo incolli in QBE, aprendolo cosa dice...?
Se Visualizzi tutto il problema è molto sicuramente nella modalità dbSeeChanges, ed a quel punto ricordo la questione del campo Identity.
GRAZIE!
in effetti ho invertito i riferimenti ADO e DAO e tutto funziona!!!
GRAZIE

Ammammata
2020-08-27 15:16:09 UTC
Permalink
Il giorno Thu 27 Aug 2020 12:12:36p, *pfmarro* ha inviato su
Post by pfmarro
Post by Ammammata
"WHERE([myTable].IDBa) = '" & BaID & "'"
WHERE ((([_pfm].IDBallotto)=1001901727));
mi sono perso

nell'OP c'era [myTable].IDBa)

nel tuo ultimo esempio c'è [_pfm].IDBallotto)
--
/-\ /\/\ /\/\ /-\ /\/\ /\/\ /-\ T /-\
-=- -=- -=- -=- -=- -=- -=- -=- - -=-
........... [ al lavoro ] ...........
Loading...