Newsgroup: it.comp.lang.visual-basic
Titolo: Grandi tabelle Access

Sono riuscito a riprodurre l'errore di cui ai miei post precedenti, in 
modo certo e costante.
 
Allora sembra che se una tabella Access, di grandi dimensioni (46000 
record) viene copiata tale e quale e sulla nuova tabella si inseriscono, 
alla fine, nuove variabili, se si tenta di fare un update su queste 
variabilli,  questo d� l'errore indicato (type mismatch in criteria 
expression).
 
 
Se invece trattasi di tabella piccola  (due o tre record) questo non 
succede : la si puo' allargare a piacere, e l'update procede normalmente.
 
A me personalmente questo mi complica la vita di molto.
 
Qualcuno ha una soluzione ??

 alla fine, nuove variabili,
 
intendo dire : si aggiungono  nuove colonne (in Design mode)

 Qualcuno ha una soluzione ??
Lavoro da 15 anni con tabelle di oltre 400.000 records e mai avuto problemi nelle operazioni CRUD. Peraltro questa tabella rappresenta lo storico delle vendite, quindi aggiornato (INSERT) centinaia di volte il giorno.
 
F.

 F.
 
e quindi ? Dove devo andre a cercare la causa ?? Cosa puo' essere andato 
storto ??
 
Se il codice � corretto, il database � corretto, cosa potrebbe essere ?

 Se il codice è corretto, il database è corretto, cosa potrebbe essere ?
 
 
Scusa, se vuoi toglierti il dubbio, genera un mdb ex novo e fai le tue prove.
 
F.

 F.
 
Hai mai provato ad aumentare il numero di colonne alla tabella  e poi
riaggiornarla nelle colonne nuove ?

 F.
 
e cosa pensi che stia facendo da due giorni ??


No mai.
 
F.


 
Ecco � quello che sto tentando di fare io.
 


Che vuoi che ne sappia, sei tu che poni i quesiti e gli utenti che gentilmente ti rispondono.
 
F.

On 14.06.2012 15:37, Fabrizio Alessandri wrote:

vabbč, visto che nessuno ha delle idee, dimentico il file Access e mi 
creo un file binario .dat, nel formato che voglio io.
Intanto lo dovrň leggere solo io, per farci delle statistiche.
 
Grazie lo stesso.
 

 Grazie lo stesso.
 
Guarda, tutto lo scenario non ha senso, e la "soluzione" di passare a file binario anche meno... quello che hai fatto non ha motivi per non funzionare, e se anche fosse, al più ha scazzato l'*interfaccia* di Access, ma il database non può non supportare quello che stai facendo, mai visto un problema del genere... persino per Access, 46.000 record sono bruscolini.
 
La controprova la poi fare evitando un copy&paste ma facendo fare l'operazione al motore: creai la tabella ex novo con le colonne in più, la provi dal tuo codice facendo qualche insert/update e se funziona la popoli facendo una SELECT+INSERT dalla tabella originaria.

 Qualcuno ha una soluzione ??
ORA io non vorrei sempre fare il solito...ma se non ti informi....fai la 
tua "solita" figura!
Te lo spiego senza insulti....beviamo un po di acqua fredda e cominciamo!!!
Ambito:
VALE PER QUALSIASI DATABASE da sqlite a ORACLE passando per access
 
Le tabelle si creano usando :
uno strumento specifico per il database...ad esempio un client grafico 
(access)...o phpmyadmin per mysql
 
OPPURE
con un linguaggio testuale chiamato SQL
 
Con sql istruisci il motore database a creare una serie di campi che 
formano il record e raggrupparli in un contenitore (la tabella) on il 
nome che vuoi...
 
CI MANCHEREBBE ALTRO CHE LE TABELLE NON FOSSERO MODIFICABILI
 
con sql faresti ALTER TABLE etc etc
 
COME SI FA A FARLO "grafico" con access????
Intendiamoci....che Access usi?
Se è fino a 2003 hai la scelta su 2 sole viste: Mostra e Struttura
 
SE HAI 2007 in poi...c'è a rompere le palle anche DESIGN!!!
...devi andare in STRUTTURA...quella con il disegnino della squadra ed 
il righello....LI E SOLO LI hai il controllo "grafico" della struttura 
della tua tabella!
Ora aggiungi i campi IN FONDO e imposti il tipo e se accetta di essere 
vuoto oppure no!
 
 
STOP
 
la tabella è aggiornata....COME STRUTTURA!
E ADESSO????.... come cazzo la aggiorno....COME "DATI"?
 
Il copia ed incolla è da dementi se lo fa un programmatore....è da 
inesperti se lo fa un 
commercialista/avvocato/imbianchino/artigiano...ossia il target di 
utenti access!
 
Come si fa allora?
ad esempio con una QUERY DI AGGIORNAMENTO...sfruttano le peculiarità 
grafiche di access
 
 
 
ES
DATABASE Sorgente
tabella Anagrafica
NOME
COGNOME
INDIRIZZO
 
Database NUOVOdb
Tabella Anagraficanew
NOME
COGNOME
INDIRIZZO
CODICESSN
 
Come aggiorno anagrafica new con i dati del vecchio db?
 
 
Apri NUOVOdb
collega (NON IMPORTA ....collega) la tabella Anagrafica del Db 
"Sorgente"....nel 2007 c'è l'etichetta  "Dati esterni"
 
Adesso hai 2 tabelle Anagrafica (collegata vecchi dati da importare) e 
Anagraficanew(Nuova struttura vuota da riempire PARZIALMENTE con i dati 
che ci sono nel vecchio archivio)
 
Adesso vai in CREA ->query (o CREA->struttura query dipende dalla 
versione di access)
 
Si apre il design della query SCEGLI SOLO LA TABELLA "Anagrafica" 
(quella che contiene i dati vecchi)
adesso IMPOSTA LA QUERY come "Query di ACCODAMENTO" ....NON 
AGGIORNAMENTO ma ACCODAMENTO!
ADESSO ti chiederà che tabella aggiornare
scegli
"Anagraficanew"
non sembrerà apparirti nulla
 
Bene adesso devo scegliere quali campi vuoi prendere della vecchia 
tabella quindi trascina NOME COGNOME INDIRIZZO
 
Fatto...lanciala....OPLA' aggiornati!
 
Rimuovi il collegamento con la vecchia tabella....
 
Vantaggi: se ci sono degli errori nei vecchi dati....ti segnala cosa 
accade...!
 
 
Questo che ti ho detto NON HA NULLA a che fare con la 
programmazione.....per dire ...un ragazzo del liceo (o un impiegato 
delle poste) che ha l'ECDL lo sà fare!
 
SALUTI!

 On 14/06/2012 15:17, john wrote:
 
Mi ribolle
 
.....scusa è...tanto per la cronaca...
in PHP...PERL...PYTHON....C...
ad esempio su un DB mysql
 
se hai da inserire i dati di una tabella con i dati contenuti in un 
altra....
come fai?
un lentissimo ciclo (in php perl...etc etc) su tutti i record
o una velocissima query (SQL) di inserimento (INSERT INTO bla bla bla)?
 
...dimmi che sai fare la query per piacere!
 

 ....dimmi che sai fare la query per piacere!
 
Aahhaah con questa domanda mi hai fatto scompisciare :D Ovviamente ritengo
che la risposta sia positiva altirmenti....
 

dalla tabella originaria.
 
 
In questi ultimi tempi mi sono rotto troppo a estrarre dati da  5 - 6 
tabelle Access contemporaneamente, per estrarre solo i dati che mi 
servono. Sarà perchè io sono particolarmente tonto, ma ogni due giorni 
c'è qualcosa che mi da errore.  Ci sto perdendo troppo tempo e mi sono 
rotto ormai. Siamo a metà giugno e intendevo finire a fine maggio. Per 
il commandbuilder ci ho perso un paio di giorni. Poi spesso non 
funzionano gli esempi stessi (quelli più recenti) che si trovano in 
rete. Insomma, se lo posso evitare, evito di creare Access file e 
leggerli da VB .NET
 
Con PHP + MySQL, anche all'inizio, ho avuto la vita moto più facile.
 
E che PHP è una menata, se si deve combinare con l'HTML per visualizzare 
tabelle sullo schermo. Nonostante tutto spesso mi meravigliavo di come 
le cose funzionavano alla prima.
 
Invece con VB .NET + Access, le cose non sono mai andate liscie alla prima.
 
Comunque non do' la colpa a nessuno : sono io che sono tonto.
 
Quindi, meglio che faccia le cose che so fare meglio e tralascio le altre.
 
Grazie comunque dei consigli.
 
 


 
Conme dici anche tu, dovrebbe funzionare no ??
 
 
 

 Conme dici anche tu, dovrebbe funzionare no ??
 
Ma infatti funziona anche cosi.
Certo, come ti hanno gia detto, devi stare attento a alle regole di tutti i 
campi, vecchi e nuovi, e rispettarle. Altrimenti la risposta è un errore.
E quando il database comunica  un errore, non è mai suo (l'errore) ma del 
programmatore. Certo, poi ci può essere un disco danneggiato...
 
-- 
Greg 
 
 

 leggerli da VB .NET
 
Guarda, per puro sfizio ho fatto una tabella Access da 50.000 record e 4 colonne esattamente come nella la tua, ho fatto copia&incolla, aggiunto un altra dozzina di colonne testo ed eseguito il tuo codice, preso pari pari e piazzato in progetto vuoto: manco a dirlo, funziona perfettamente.
 
A parte chiamare l'esorciccio, che mi pare di ave già suggerito in passato, che vuoi che ti dica? se credi ti mando tutto il pacco dono e vedi tu...

 record) viene copiata tale e quale
 
è una copia superficiale,non deep,per cui i metadati non vengono copiati.
 
Crea le tabelle con i comandi sql e anche la copia falla con comandi sql 
 
 


 
hai usato i wizard per creare la connessione ai dati e il dataset?
 
Vengono creati anche i parameters in tal caso,che vedo che tu non usi per 
modificare il database. 
 
 


Ancora mettersi a codificare comandi SQL codificare per copiare una 
tabella....che menata !
 
Sarà per la prossima volta. Ora vado avanti con il file binary. senno 
non finisco più.
Grazie comunque per il feedback.
 
 


 
pensavo che copiare 'a mano' una tabella, copiasse 'proprio tutto'.
Altrimenti che copia č ??
 

preso pari pari e piazzato in progetto vuoto: manco a dirlo, funziona perfettamente.
 
questo dimostra che ho un diavolo in casa che si diverte a farmi dispetti.
Il consiglio di qualche tempo fa, cioè di chiamare un esorcista, pare 
sia sempre valido.
Ci penserò.
 
Grazie del feedback : è stato utile sapere che almeno il codice 
funziona. (almeno per gli altri).
 
 

 nome, hai già tutto dentro ???
zac
BRAVO BENE BIS
....applausi a non finire! è arrivato il bongi!
 
La domanda sorge spontanea:
come cazzo ti fa a funzionare un progetto php+mysql?...lascia stare il 
php....proprio il mysql!!!
 
CREATE TABLE ClientiItalia
   AS SELECT * FROM contatti WHERE Stato = 'it';
 
e poi
 
ALTER TABLE ClientiItalia
ADD COLUMN 'codiceOCR' AS VARCHAR(10) NOT NULL DEFAULT '00000' ;
 
MAI FATTO????...io stento a crederlo!
 
 
 
 
 
E POI....ti rispondo...PER ACCESS E DB IN GENERE...
il copia ed incolla serve per gli uTonti non per i programmatori!
Nemmeno tutti i SO e programmi lo supportano!
 
Immagina di copiare dei dati che contengono campi lunghi 30 
caratteri...in tabelle che ne accettano 20
 
O Immagina di copiare dati di tabelle relazionate....su tabelle NON 
relazionate
 
O immagina di copiare campi con indice in campi che NON hanno
 
indice....
 
Un ambiente di aiuto ad un DB se prevede una procedura si chiama 
IMPORTAZIONE DATI e di fatto si traduce (ci pensa lui dietro le quinte) 
in operazione di CREATE ed INSERT
 
 
QUINDI AL LIMITE
access->importazione dati
phpmyadmin->importa
e via così!
 
NON UN BRUTALISSSIMO COPIA ED INCOLLA ....e che cazzo!!!!
 
 


 
Ciao Marco.
 
In questi giorni do una mano a mia moglie nei sopraluoghi ad
edifici lesionati dal terremoto.
 
"Ma architetto, perchè fare tutte le cose che sta dicendo!
Una stuccatina e una riverniciatina non sono sufficienti?
Ho fretta di ripartire/entrare in casa."
 
Un copia/incolla anche lì ....;-)
 
-- 
---------------------------
Mauro Gamberini
Microsoft MVP - Excel
http://www.riolab.org/
 
http://www.maurogsc.eu/
 
 
 


però sul mio test di poche righe ha funzionato.
E anche ad altri ha funzionato. Perchè ???
 


PERCHE' AVETE AVUTO CULO!!!
nessun dato è andato in conflitto!
 
Faccio un esempio che capisci....
hai detto che sei eterosessuale vero?
 
 
QUELLO CHE FAI TU E' UN ORGIA AL BUIO: SE TI VA BENE FICCHI...ALTRIMENTI 
SEI FICCATO!
 
QUELLA CHE FACCIO IO E TUTTO IL RESTO DEI COSCIENZIOSI ETEROSESSUALI È 
UN ORGIA CON LA LUCE ACCESA.....SI VEDE DOVE SI FICCA E SI SCANSA CHI CI 
VUOL FICCARE!!!
 
TE CAPÌ TESTINA?????


Il più grande dramma dell'umanità informatica è stato quando zioBill ha 
creduto che ....il copia & incolla fosse una pratica erotica e da 
sfigato nerd ....l'ha voluta implementare!!!

 intendo dire : si aggiungono  nuove colonne (in Design mode)
 
Dove le aggiungi le nuove colonne? Dall'interfaccia di MS Access?
 
Alex
 
 


yes. In Design View

 TE CAPÌ TESTINA?????
 
Sì maestro. A quando la prossima orgia  ??
 

 aggiungendo colonne, non dovrebbe essere lecito.
 
Ma si che è lecito... non sarà la cosa più pulita del mondo (magari da non fare su un DB in produzione) ma hai fatto una cosa di ordinaria amministrazione in quell'ambiente; d'altra parte se usi Access è anche per fare un po' di test e sminestrare sui dati in maniera "sportiva", se no ti rivolgeresti altrove
 
Bisogna prestare un po' di attenzione (specie se il file è molto grande, è in rete, c'è qualcos'altro che potrebbe tenerlo aperto, ecc..) ma, un'operazione come quella che hai fatto, *in genere*, non dovrebbe dare quel tipo di problema, specielmente non nei termini del tuo caso.

 Bisogna prestare un po' di attenzione (specie se il file è molto grande, è in rete, c'è qualcos'altro
 
che potrebbe tenerlo aperto, ecc..) ma, un'operazione come quella che 
hai fatto, *in genere*, non dovrebbe
 
dare quel tipo di problema, specielmente non nei termini del tuo caso.
 
Anch'io sospetto che qualcosa sul mio PC è 'corrotto'. Non ho ancora 
localizzato il problema, ma ieri una serie di operazioni su un file 
nuovo ha funzionato perfettamente. Solo su questo file vecchio ha dato 
errore.
 
Chissà, potrebbe essere anche la mia versione di VB Express 2011 che è 
corrotta da qualche parte...
 
 
 

 corrotta da qualche parte...
 
Non mi pare un problema di codice; a meno non c'è qualcos'altro nel tuo codice reale rispetto a quello che hai postato, preso di peso a me ha funzionato in una situazione di database analoga

Ma ancora gli state a rispondere?
Trolleggia alla grande.
 


 
cosa sei tu, una autorità per affermare ciò ??
Mi conosci personalmente  ??
 

 ha scritto nel messaggio 
news:jrkc4s$mcq$2...@speranza.aioe.org...

no,ma usa un algoritmo euristico per individuare i nuovi troll