Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Aiuto per access

Discussioni e opinioni costruttive sul mondo dell'informatica.
Per la soluzione di problemi specifici fare riferimento alle sezioni di assistenza!

Moderatori: aurelio37, axelrox

Aiuto per access

Postdi doberdrake » 08/07/03 14:54

Ciao raga,
qualkuno potrebbe aiutarmi!!
Ho un problema debbo invertire in una colonna di access un formato data esempio : questo formato 01/12/1998 dovrei modificarlo in 19981201.
Quakuno potrebbe aiutarmi?
Grazie a tutti
doberdrake
Newbie
 
Post: 4
Iscritto il: 08/07/03 14:50

Sponsor
 

Postdi Frengo78 » 08/07/03 16:49

Una semplice procedura in vb. Splitti la stringa della data sul carattere / ottieni quindi un array di tre dati poi fai l'unione della stringa del secondo elemento dell'array + il primo + il terzo separati dalle barre e il gioco e' fatto
Knowledge is a weapon
Frengo78
Utente Senior
 
Post: 8985
Iscritto il: 16/07/02 08:41
Località: Torino

Postdi piercing » 09/07/03 09:21

Marò Frè quanto la fai difficile.... Array, Split, VB.... e che devi mandà un razzo?? ;)

Codice: Seleziona tutto
UPDATE MyTab SET MyTab.NewDate = Year([MyDate]) & String$(2-Len(Month([MyDate])),"0") & Month([MyDate]) & String$(2-Len(Day([MyDate])),"0") & Day([MyDate]);


MyTab è la tabella

MyDate è il campo in formato data

NewDate è il campo da aggiungere in formato numerico
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi doberdrake » 09/07/03 15:00

Grazie ragazzi siete stati grandi comunque avevo risolto trasformando la colonna in execel preso dalla disperazione.
Potreste dirmi come faccio a dividere Nome e Cognome che stanno in uno stesso campo in due campi distinti ? Premetto l'unica cosa che mi può aiutare è che nome e cognome sono divisi da uno spazio.
Grazie a tutti
doberdrake
Newbie
 
Post: 4
Iscritto il: 08/07/03 14:50

Postdi Nicola » 09/07/03 18:04

puo` servire un parse e un`analisi dello spazio per splittare i due dati??
Nicola
Nicola
Utente Senior
 
Post: 7381
Iscritto il: 08/02/02 01:00

Postdi Frengo78 » 09/07/03 18:28

doberdrake ha scritto:Grazie ragazzi siete stati grandi comunque avevo risolto trasformando la colonna in execel preso dalla disperazione.
Potreste dirmi come faccio a dividere Nome e Cognome che stanno in uno stesso campo in due campi distinti ? Premetto l'unica cosa che mi può aiutare è che nome e cognome sono divisi da uno spazio.
Grazie a tutti



Codice: Seleziona tutto
dim nomecognome, nome, cognome as string
nomecognome = "dober drake"
nomecognome = split(nomecognome, " ")
nome = nomecognome(0) 'sarà uguale a dober
cognome = nomecognome(1) 'sarà uguale a drake


oppure

Codice: Seleziona tutto
dim nomecognome, nome, cognome as string
nomecognome = "dober drake"
nome = mid(nomecognome, 1, instr(nomecognome, " "))
cognome = mid(nomecognome, (1+instr(nomecognome, " "), (len(nomecognome - instr(nomecognome, " "))


Non le ho provate, la prima sono sicuro al 99% la seconda potrei aver scritto male
Knowledge is a weapon
Frengo78
Utente Senior
 
Post: 8985
Iscritto il: 16/07/02 08:41
Località: Torino

Postdi piercing » 09/07/03 21:54

Posso fare lo sborone??? :D :lol:

Codice: Seleziona tutto
UPDATE TabName SET TabName.Nome = Left([Nominativo],InStr([Nominativo]," ")-1), TabName.Cognome = Right([Nominativo],Len([Nominativo])-InStr([Nominativo]," "));


TabName è il nome della tabella.
Il campo Nominativo è quello originario che contiene nome e cognome
Il campo Nome è un nuovo campo di testo da aggiungere alla tabella originale TabName
Il campo Cognome idem come il campo Nome

Ovviamente ci saranno errori nei nomi e cognomi composti che dovrai correggere a mano...
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi Frengo78 » 10/07/03 00:18

In generale per evitare di correggere a mano i nomi compositi potresti adottare la prima delle mie due ipotesi e condizionare che se l'ubound dell'array è maggiore di due (ovvero se lo split di un nome composito come ad esempio Tizio Caio Sempronio fatto sullo spazio da almeno tre elementi) allora metteremo nel campo nome gli elementi dell'array 0 e 1 e nel cognome l'elemento 2. sul totale degli elementi l'ultimo è sempre il cognome. In questo modo Ciro Alfonso Pasquale Esposito verrebbe automaticamente separato correttamente. La regola non si applica sui brasiliani :D
Knowledge is a weapon
Frengo78
Utente Senior
 
Post: 8985
Iscritto il: 16/07/02 08:41
Località: Torino

Postdi Frengo78 » 10/07/03 00:25

In pratica

Codice: Seleziona tutto
dim nomecognome, nome, cognome as string
nomecognome = "ciro alfonso pasquale carmine arturo esposito"
nomecognome = split(nomecognome, " ")
Dim i as integer
I = 0
For i = 0 to (ubound(nomecognome) - 1)
        nome = nome + " " + nomecognome(0) '
next I
cognome = nomecognome(ubound(nomecognome))


Se testi la nazionalita <> da brasiliana puoi parametrizzare anche quell' -1 in apertura di ciclo. :D:)
Knowledge is a weapon
Frengo78
Utente Senior
 
Post: 8985
Iscritto il: 16/07/02 08:41
Località: Torino

Postdi pjfry » 10/07/03 00:44

Frengo78 ha scritto:In generale per evitare di correggere a mano i nomi compositi potresti adottare la prima delle mie due ipotesi e condizionare che se l'ubound dell'array è maggiore di due (ovvero se lo split di un nome composito come ad esempio Tizio Caio Sempronio fatto sullo spazio da almeno tre elementi) allora metteremo nel campo nome gli elementi dell'array 0 e 1 e nel cognome l'elemento 2. sul totale degli elementi l'ultimo è sempre il cognome. In questo modo Ciro Alfonso Pasquale Esposito verrebbe automaticamente separato correttamente. La regola non si applica sui brasiliani :D

bella teoria frè, ma "alessandro del piero" come lo scomponi? :lol: :D
(e non attaccarti alla regola dei brasiliani solo perchè è bravo a pallone ;) )
Avatar utente
pjfry
Moderatore
 
Post: 8240
Iscritto il: 19/11/02 17:52
Località: terni

Postdi Frengo78 » 10/07/03 00:51

azz! non ci avevo pensato! Anche altri cognomi tipo di canio seguono questa regola. Uhm.... Idee?

Si potrebbe testare che l'elemento penultimo dell'array derivato dallo split sia diverso da "di" "de" "dal" "del" "della"... ecc.
Se proprio vogliamo fare un lavoro coi fiocchi ed essere esterofili bastera inserire nella casistica anche "mac" "von" e simili
Se il penultimo elemento è uguale a questa casistica anziche essere l'ultimo elemento del nome sarà il primo del cognome.

Siamo tornati alla sola eccezione brasiliana!
Knowledge is a weapon
Frengo78
Utente Senior
 
Post: 8985
Iscritto il: 16/07/02 08:41
Località: Torino

Postdi doberdrake » 10/07/03 08:16

Grazie mille a tutti per esservi prestati a darmi una mano ma scusate l'ignoranza di base io il campo Cognome Nome da dividere in due parti c'è l'ho in acces però vedo che le istruzioni che mi avete inviato sembrano essere quelle per visual basic che io non sò usare!!!
Potresti illuminarmi ulteriormente grazie per la pazienza.
doberdrake
Newbie
 
Post: 4
Iscritto il: 08/07/03 14:50

Postdi piercing » 10/07/03 16:45

doberdrake ha scritto:Grazie mille a tutti per esservi prestati a darmi una mano ma scusate l'ignoranza di base io il campo Cognome Nome da dividere in due parti c'è l'ho in acces però vedo che le istruzioni che mi avete inviato sembrano essere quelle per visual basic che io non sò usare!!!
Potresti illuminarmi ulteriormente grazie per la pazienza.


dober... ma la mia soluzione l'hai letta per niente???
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi doberdrake » 10/07/03 16:49

Si grazie Piercing è andata solo ke mi ha diviso i cognomi composti cmq ho risolto grazie mille.
doberdrake
Newbie
 
Post: 4
Iscritto il: 08/07/03 14:50

Postdi piercing » 10/07/03 16:54

A titolo di cronaca mi sono imbattuto in un progetto di normalizzazione di un archivio di oltre unmilione di nominativi... e il metodo più veloce per la separazione dei casi particolari è stata sicuramente la separazione manuale...

non avete idea di quanti casi particolari esistano... doppi nomi, tripli cognomi... anzi capita spesso il caso in cui non si sappia neanche se è un nome o un cognome anche leggendolo...

ma siccome l'incidenza di questi casi è molto bassa per fortuna... il metodo manuale è quello che in due giorni ha risolto tutto il problema...

Se avessi scritto una procedura complessa inoltre, avrei dovuto verificare tutto il milione di record... mentre così ero sicuro del 90% del lavoro e ho verificato gli altri casi a manina (e telefono...).

Eventualmente se nei nomi complessi che vedi individui delle regole comuni puoi sempre inventarti query successive... ovvero prima dividi solamente la prima parola dalle altre, poi piano piano analizzi i casi successivi... eventualmente aiutandoti con un campo flag sul quale far agire le ulteriori query di update...

Capisco il voler programmare tutto ;) ma la fantasia umana certe volte non ha limiti.
Avatar utente
piercing
Moderatore
 
Post: 7569
Iscritto il: 10/04/02 10:34
Località: Roma

Postdi Frengo78 » 10/07/03 20:08

Poniamo il caso che tu voglia associare lo script che ho scritto io ad un bottone di una maschera access, crei il bottone poi vai nelle proprieta e nell'evento on click ti fai visualizzare il codice. Al posto di tutto quello che fa ora l'onclick (probabilmente nulla) ci metti il codice che ciclando il risultato della query di selezione del tuo campo cognomi vada ad effetturare il controllo che ti ho scritto io e a scrivere il database.

Odio access, non mi dilungo oltre
Knowledge is a weapon
Frengo78
Utente Senior
 
Post: 8985
Iscritto il: 16/07/02 08:41
Località: Torino


Torna a Discussioni


Topic correlati a "Aiuto per access":


Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite