Risolto Estrai da String

italpascal

Utente abituale
Original poster
25 Ottobre 2016
182
2
18
roma
2013
Mi sono reso conto che utilizzando un campo String al momento di fare un ordinamento non ottengo il risultato desiderato.
Perchè ho questa situazione :
Campo string : AAA1234A
BBB1010A
Quindi se voglio un ordinamento per il numero all'interno della stringa non funziona, mi mette sempre che AAAnnnnA viene prima di BBBnnnnA
Allora ho aggiunto un campo di tipo Int ( Appo ) in modo che se chiede ordinamento non tiene conto delle lettere precedenti.
Ora, per non rifare tutto da capo, pensavo che si potrebbe estrarre dal campo String, partendo dal 4 carattere i primi 4 caratteri.
Ho pensato questa cosa perchè in Excel avevo usato questa escamotage con il comando Stringa.Estrai(4,4)

Ci sono possibilità ? Ho già circa 200 records inseriti :(

In laternativa rifaccio tutto da capo MA vorrei che una volta inserito un nuovo record automaticamente nel campo Appo mi inserisce i 4 numeri.
Lo lascio nascosto in modo da non confondersi al momento dell'inserimento.
 

Sgrubak

Excel/VBA Expert
Expert
10 Marzo 2022
778
169
45
Office 365 Beta
se voglio un ordinamento per il numero all'interno della stringa non funziona
Non è che non funziona. E che tu stai chiedendo di ordinare i dati confrontando una variabile String e lui quello fa: in un dizionario trovi prima le parole che iniziano con la A o quelle che iniziano con la B?

Allora ho aggiunto un campo di tipo Int ( Appo ) in modo che se chiede ordinamento non tiene conto delle lettere precedenti.
Cosa intendi per "ho aggiunto un campo"? Hai una classe in cui hai inserito una variabile di tipo Integer?
Ora, per non rifare tutto da capo, pensavo che si potrebbe estrarre dal campo String, partendo dal 4 carattere i primi 4 caratteri.
Il concetto è quello ma dipende dal contesto. Parti da un DB? Parti da dei file di testo? I dati li organizzi in una lista? In una tabella? Hai delle classi apposite?
Spiega meglio il tutto, chiarendo soprattutto il concetto di campo, perché può essere frainteso.
 

italpascal

Utente abituale
Original poster
25 Ottobre 2016
182
2
18
roma
2013
OK, ci provo.
Ho aggiunto un campo Int nella tabella ( aggiornando il TableAdapter e tutto il resto )
Ora se riesco a trasferire dalla colonna con formato String tutti i record nella colonna ( Appo ) con formato Int ( chiaramente solo dal 4 carattere in poi, escludendo ultimo carattere )
e avendo creato una query con campo di ricerca Appo avrei risolto.

E' anche vero che tutto questo potrebbe servire in fase di inserimento ( appunto dicevo : vorrei che una volta inserito un nuovo record automaticamente nel campo Appo mi inserisce i 4 numeri)
Speravo ci fosse qualcosa come Stringa.Estrai di Excel

Forse faccio prima a ripartire da zero con i records ricaricandoli tutti a mano
 

Sgrubak

Excel/VBA Expert
Expert
10 Marzo 2022
778
169
45
Office 365 Beta
Ho aggiunto un campo Int nella tabella ( aggiornando il TableAdapter e tutto il resto )
E questo non è un campo calcolato?
Ora se riesco a trasferire dalla colonna con formato String tutti i record nella colonna ( Appo )
Si può fare o tramite campo calcolato o con una query di UPDATE.
chiaramente solo dal 4 carattere in poi, escludendo ultimo carattere )
Ma hai lunghezze differenti? Perché se varia la lunghezza, dire "solo dal 4 carattere in poi, escludendo ultimo carattere" e dire "partendo dal 4 carattere i primi 4 caratteri" (come al tuo post #1) è differente...
E' anche vero che tutto questo potrebbe servire in fase di inserimento ( appunto dicevo : vorrei che una volta inserito un nuovo record automaticamente nel campo Appo mi inserisce i 4 numeri)
Questa cosa può essere superflua se si utilizza un campo calcolato.
Speravo ci fosse qualcosa come Stringa.Estrai di Excel
Ciascun DBMS ha la sua. Tu con cosa stai lavorando?
 

italpascal

Utente abituale
Original poster
25 Ottobre 2016
182
2
18
roma
2013
Ora se riesco a trasferire dalla colonna con formato String tutti i record nella colonna ( Appo )
Si può fare o tramite campo calcolato o con una query di UPDATE. ?!?!?! Interessaante, vedo di capire con una Query

E' anche vero che tutto questo potrebbe servire in fase di inserimento ( appunto dicevo : vorrei che una volta inserito un nuovo record automaticamente nel campo Appo mi inserisce i 4 numeri)
Questa cosa può essere superflua se si utilizza un campo calcolato. ?!?!?! cioè ? come ?

Speravo ci fosse qualcosa come Stringa.Estrai di Excel

Ciascun DBMS ha la sua. Tu con cosa stai lavorando?

sto usando il db creato con VisualBasic2008 Express, se il db è creato con access non è eguale ?
 

Sgrubak

Excel/VBA Expert
Expert
10 Marzo 2022
778
169
45
Office 365 Beta
Interessaante, vedo di capire con una Query
Per le query di UPDATE inizia da questo link
cioè ? come ?
Ogni DBMS ha la possibilità di inserire in tabella dei campi che vengono calcolati in automatico partendo dai dati di altri campi. Ad esempio su Access si fa così mentre su Sql Server in questo modo.
sto usando il db creato con VisualBasic2008 Express, se il db è creato con access non è eguale ?
Che usi VB2008 Express non vuol dire nulla. Quello è un'IDE e serve per sviluppare programmi, non solo DB. Gli ultimi visual studio (che sono quelli che conosco) ad esempio integrano la possibilità di aggiungere le funzionalità di Sql Server Management Studio, che ovviamente non è Access. Devi sapere tu cosa usi anche perché per collegarsi dall'applicazione al DB si usano oggetti diversi per i due DBMS. Banalmente, per Sql Server si usa la connessione SqlConnection mentre per Access si usa la OleDbConnection.
 

italpascal

Utente abituale
Original poster
25 Ottobre 2016
182
2
18
roma
2013
Ho trovato il libro in offerta a meta prezzo su amazon, iniziato a leggere e forse inizierò anche a capire :):)
Mi sembra ben fatto, ho iniziato con i primi esercizi a creare datatable, dataset e altro.
Grazie dell'informazioni.
Al momento lo chiudo ( ti riassegno coppa per concludere, almeno mi hai data delle info giuste da seguire )
Grazie