Newsgroup: it.comp.appl.access
Titolo: db.OpenRecordset(sSqlBa, dbOpenDynaset, dbSeeChanges)  <----- runtime 13 - tipo dati non corrispondete

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

Salve,
 
pfmarro:

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
 


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 
 
 
 
 
 
 
 
 

 
 
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
 
 
 
 
 

 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

 
 
mi sono perso
 
nell'OP c'era [myTable].IDBa)
 
nel tuo ultimo esempio c'č [_pfm].IDBallotto)


 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

Il giorno giovedì 27 agosto 2020 alle 13:30:16 UTC+2 @Alex ha scritto:

GRAZIE!
in effetti ho invertito i riferimenti ADO e DAO e tutto funziona!!!
GRAZIE