Newsgroup: it.comp.appl.access
Titolo: Eliminare spazi intermedi stringa

Salve a tutti,
ho una tabella ed in uno dei campi devo inserire una data (ho messo tipo dati "Testo" e non "Data/ora") con i mesi in numeri romani, es: 26.VIII.2015.
 
Ho creato una maschera di input per il campo così: 00.>????.0000 e finchè ho una data come quella che ho preso come esempio tutto ok, dato che il mese è agosto e prende tutti i posti della maschera di input (i 4 punti interrogativi) ma se invece, ad es., fosse maggio resterebbero 3 posti vuoti così: 26.V   .2015
 
Ho anche una maschera costruita sulla tabella e vorrei che almeno nel campo della maschera fossero eliminati i posti vuoti del mese ed avere la stringa in questa forma: 26.V.2015
 
Ho provato con la funzione replace in VBA ma non sempra funzionare, non so se sbaglio qualcosa oppure la funzione non ha effetto se c'è una maschera di input a monte.
 
Si può fare qualcosa ?
 
Grazie molte.
 
Daniele

 
Probabilmente hai omesso qualcosa:
MioCampo = Replace(MioCampo, " ", "")
 
oppure in una query di sola visualizzazione:
MioCampoMaschera:Replace(MioCampo; " "; "")
 
Vladimiro


Vladimiro grazie per la risposta.
Ho provato esattamente con il tuo codice VBA inserito nella maschera (form) ma non funziona. Inoltre mi blocca i record (non mi fa andare al successivo) e quando chiudo la maschera mi dice impossibile salvare il record in questo momento. La maschera d input con cui ho provato è: 00.????.0000
 
Con questa maschera input ad es. ?????????? se lascio vuoto uno spazio funziona ma con il solito errore e l'impossibilità di andare a nuovo record se non chiudo la maschera. 
 
Grazie.

 Con questa maschera input ad es. ?????????? se lascio vuoto uno spazio funziona ma con il solito errore e l'impossibilità di andare a nuovo record se non chiudo la maschera. 
 
Probabilmente non mi sono spiegato bene.
Fai così:
1)Crea una prima maschera avente come origine record la tabella dove vuoi memorizzare i dati, con una casella di testo avente come parametro nel rigo "Maschera di input" 00.>????.0000 in cui andrai ad inserire le date.
 
2)Crea una seconda maschera con origine record una query costruita sulla stessa tabella che abbia nello stesso campo dove risiedono le date la funzione Replace:
MioCampoMaschera:Replace(MioCampoData; " "; "") 
 
In questo modo, nella tabella ci saranno sempre le date con lo spazio, mentre nella query le stesse date si vedranno senza spazio.
Vladimiro
 
 


Scusa la mia inesperienza. Nel punto 2) che dici, creo prima una query di selezione ma poi dove metto: MioCampoMaschera:Replace(MioCampoData; " "; "")  ?
MioCampoMaschera poi corrisponde con mioCampoData, esatto ?
 
Grazie


Ciao,
Poniamo che il campo della tabella dove inserisci le date si chiami MiaData, nella query metterai:
IlNomeCheVuoi:Replace(MiaData; " "; "") e nella maschera come origine controllo sceglierai IlNomeCheVuoi.
 
Naturalmente al posto di IlNomeCheVuoi, metterai qualsiasi nome a te più consono.
Vladimiro


Scusa ancora ma in che punto metto il codice ?  in criteri della query non lo prende, non so dove metterlo.. 
Grazie


Vladimiro,
ho capito come fare, dovevo aggiungere una nuova colonna nella query e lì aggiungere il campo con il codice che mi ha dato. Funziona ma il problema è che non mi toglie solo gli spazi ma anche i separatori della data; in sostanza la data da così: 31.V  .2015 mi viene così 31V2015.
Qualche idea?
Grazie.

 Grazie.
 
Ciao,
bisogna mettere mano ad una fuzione. 
Ora non ho tempo, magari questa sera sul tardi vedrò di fare qualcosa.
Vladimiro


Ok Vladimiro, attendo.. :)

 Ok Vladimiro, attendo.. :)
 
Ciao,
in un modulo di classe inserisci la seguente funzione:
 
Function InserisciPunto(Stringa As String) As String
Dim i As Integer
Dim x As String
 
Select Case Len(Stringa)
Case Is = 7
    x = x & Mid(Stringa, 1, 2) & "." & Mid(Stringa, 3, 1) & "."
Case Is = 8
    x = x & Mid(Stringa, 1, 2) & "." & Mid(Stringa, 3, 2) & "."
Case Is = 9
    x = x & Mid(Stringa, 1, 2) & "." & Mid(Stringa, 3, 3) & "."
Case Else
    x = x & Mid(Stringa, 1, 2) & "." & Mid(Stringa, 3, 4) & "."
End Select
 
InserisciPunto = x
End Function
 
e la richiami nella query, servendoti di due campi, in questo modo:
 
1) PrimoCampo: Replace([MiaData];" ";"")
 
2) SecondoCampo: InserisciPunto([PrimoCampo]) & Right([PrimoCampo];4)
 
Quello che andrai a rilevare nella maschera è SecondoCampo.
 
Naturalmente andrai a modificare MiaData con il vero nome del campo data che si trova in tabella e se vuoi, potrai modificare anche PrimoCampo e SecondoCampo.
 
Occhio che PrimoCampo è ripetuto nel secondo campo della query.
Vladimiro


Vladimiro,
magari per te è una stupidaggine ma io sono rimasto di stucco e vorrei proprio capirci un pò di più sulla programmazione solo che non ne ho le basi :(
Ho creato la query e funziona :))
L'unico problema rimasto è come far leggere PrimoCampo al controllo nella maschera. Fai l'ultimo sforzetto ??
Grazie millissime.
Daniele


Volevo dire far leggere SecondoCampo.. 
Daniele

 Daniele
 
Ciao,
fai una cosa, fai clic su Crea/Altre maschere/Creazione guidata maschere scegliendoti come origine record la suddetta query; dopodiché ti renderai conto della struttura della maschera appena creata.
Vladimiro
 
ps
Spero che hai Office 2007 o superiore


No ho Access 2003.. Ci sono problemi quindi ?

 No ho Access 2003.. Ci sono problemi quindi ?
 
Ciao,
no, non ci sono problemi, solo che non mi ricordo se prima di Access 2007 c'era già la creazione guidata.
 
Era solo un modo per agevolarti, ma la sostanza non cambia.
 
Fammi sapere se hai difficoltà a costruirti la maschera sulla query.
Vladimiro
 

 in un modulo di classe inserisci la seguente funzione:
....
 
In un modulo di CLASSE addirittura...? Per essere richiamato da una query che non può istanzuare Oggetti...?
 
Facciamo che usiamo un Modulo Standard...?
 
@Alex


Grazie Vladimiro,
sisi la creazione guidata c'è anche su access 2003.
ho provato a costruire la maschera includendo la query e le tabelle che mi servivano ma mi dà errore dicendo: "sono stati selezionati campi da origini record cui non è possibile connettersi. E' possibile che siano stati selezionati campi da una tabella e da una query basata su questa tabella" (ed in effetti così è). "In questo caso provare a scegliere campi solo dalla tabella o solo dalla query".
Solo dalla query è semplice ma poi come faccio a collegare il campo della query alla maschera?
Grazie. Daniele


Cioè volevo dire: Solo dalla query è semplice ma poi come faccio a collegare il campo di questa maschera a quello della maschera principale che ha tutti gli altri dati?


Sempre limitativo ehhhh?
Le Vie del signore e di Access sono infinite!
;-)
 
 
-- 
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)
 
---
Questa e-mail è stata controllata per individuare virus con Avast antivirus.
https://www.avast.com/antivirus
 
 


beh, hai fatto bene ad evidenziare l'errore anche se non è difficile capire che comunque la funzione l'ho inserita in un modulo standard.
Vladimiro
 

 Cioè volevo dire: Solo dalla query è semplice ma poi come faccio a collegare il campo di questa maschera a quello della maschera principale che ha tutti gli altri dati?
 
Ciao,
se come dici: dalla query è semplice, significa che sei riuscito a costruirtela la query, Giusto?
 
Allora,
mentre ti costruisci i due campi nella query, perché non ci metti tutti gli altri campi della tabella e da questa query ti crei poi una maschera?
Vladimiro


Ed infatti, anche se non sono un esperto, ho creato un modulo standard, ossia quello che propone di dafault access, anche perchè non avrei saputo come creare un modulo di classe ;)
 


Beh si la query è semplice, basta andare su creazione guidata e inserire i campi. Avevo pensato anch'io infatti di fare così ma devo rifare tutta la maschera (2/3 ore di lavoro) e comunque se non ci fossero state alternative l'avrei fatto ed uso il condizionale perchè (e mi era già successo un paio di volte), molto stranamente, adesso non mi dà più quell'errore che dicevo nel mio precedente post e, in creazione maschera guidata, adesso posso unire SecondoCampo della query, con qualsiasi maschera io voglia e ripeto, prima non me lo faceva fare, ne sono certo; è come se ci fosse un temporizzatore che dopo un tot. di tempo te lo fa fare oppure un bug ?. Hai qualche spiegazione ? mi piacerebbe saperlo.
 
Però, mi sono sempre chiesto se sia possibile, in una maschera già creata, inserire, in una casella di testo di questa maschera, un campo di una tabella o query non inclusa nella maschera. Avevo trovato DLookUp ma mi resta ostico gestire il terzo argomento.
 
Grazie mille ancora Vladimiro.


Allora,
è tornato a darmi quell'errore...  Strano.. Adesso faccio un pò di prove e poi ti faccio sapere.
Grazie.


Ho provato ad inserire la query (quella con SecondoCampo) sulla maschera andando su proprietà maschera / origine records e poi istruzione SQL : generatore di query (lì ho anche tutte le tabelle per la mia maschera). Me la prende ma nel campo "SecondoCampo" che ho selezionato per la maschera lo spazio permane.
Se invece mi costruisco una nuova query aggiungendo a SecondoCampo anche le tabelle che mi occorrono e poi creo una nuova maschera (come diceci tu nel tuo ultimo post) lo spazio non me lo dà più. Chissà perchè questa differenza.
Alla fine dovrò rifarmi la maschera da capo..


Ciao,
non esistono né bug, né temporizzatori, esiste solo un po' di confusione da parte tua :-)
Ma è un fatto fisiologico visto che stai alle prime armi.
 
Chiedevi del possibile utilizzo di Dlookup:
con la funzione DLookup hai la possibilità di visualizzare UN UNICO CAMPO DI UN UNICO RECORD che si trova al di fuori dell'origine record della maschera che stai utilizzando, per cui non credo che ti possa tornare utile.
 
Secondo quesito:
perché ricostruirsi una nuova maschera visto che già ce l'hai?
 
Che cosa c'è nell'origine record della maschera? Una tabella o una query (magari formata da più tabelle)? 
Vladimiro


Si è vero un pò di confusione :)
 
L'avevi consigliato tu di creare una nuova maschera, dicevi questo:
Allora,
mentre ti costruisci i due campi nella query, perché non ci metti tutti gli altri campi della tabella e da questa query ti crei poi una maschera?
 
All'origine record della maschera ci sono 13 tabelle e una query. Come dicevo, ho provato ad aggiungere alla mashera la query che mi hai fatto fare (quella con SecondoCampo) ed ho quindi aggiunto il campo "SecondoCampo" ma facendo così lo spazio data rimane. Se invece (come mi hai consgliato), costruisco una nuova maschera includendo le tabelle che mi servono più la query con SecondoCampo, in tal caso funziona. Non capisco questa differenza di funzionamento dato che l'SQL è lo stesso..
Grazie.

 All'origine record della maschera ci sono 13 tabelle e una query.
Forse vuoi dire che c'è una query formata da 13 tabelle e una query.
 
 Come dicevo, ho provato ad aggiungere alla mashera la query che mi hai fatto fare (quella con SecondoCampo) ed ho quindi aggiunto il campo "SecondoCampo" ma facendo così lo spazio data rimane. Se invece (come mi hai consgliato), costruisco una nuova maschera includendo le tabelle che mi servono più la query con SecondoCampo, in tal caso funziona. Non capisco questa differenza di funzionamento dato che l'SQL è lo stesso..
Se c'è differenza significa che le devi osservare attentamente, vedrai che troverai sicuramente l'inghippo. 
 
Ascolta, vai direttamente sulle query, incolla lo stesso SQL dell'origine record dell maschera ed esegui la query.
 
Nel momento in cui hai constatato che la query non dà problemi, entra nella sua struttura ed aggiungi i due campi.
 
Esegui nuovamente la query e se dà il risultato voluto copia ed incolla l'SQL nell'origine record della maschera andando a modificare o aggiungere qualche casella di testo.
Vladimiro


No, nella maschera ci sono proprio 13 tabelle ed una query.. ho sbagliato? comunque ho quello che voglio..
 
Ho provato a fare come dici tu ma continua a dare il secondo campo con lo spazio. 
 
Vabbè mi rifaccio la tabella che faccio prima, l'importante è che con il tuo codice toglie gli spazi.
 
Grazie millissime, adesso ho un altro quesito per il quale apro subito un altro thread.
 


Rifatta la maschera in meno di un'ora, tutto perfetto, la data non ha spazi. Ti ringrazio ancora moltissimo per l'assistenza.
Daniele


Ciao,
e i punti li visualizza?
Vladimiro


si certo li visualizza e senza spazi superflui così ad es.: 21.V.2015 oppure 21.VI.2015. Direi perfetto. Grazie. Adesso mi devi (si fa per dire :) aiutare all'altro mio quesito che ho già postato.
Un saluto.
Daniele


Vladimiro,
mi sono accorto di un problema sulle date con i punti d questo thread.
Se non metto la data a monte (ho un'altra data oltre quella in questione) mi restituisce #Errore ed è esteticamente molto brutto da vedere sulla maschera finale.
Si può fare qualcosa?
Grazie.
Daniele

 Si può fare qualcosa?
Certamente si può fare, solo che dovresti fare un esempio concreto mostrando alcuni dati, oppure indicare tramite il db che hai messo on-line dove dovremmo andare a guardare.
Vladimiro
 
 


Riferendomi al DB che ho messo on line. 
In maschere, 010_esemplare c'è la casella testo DataImago. Volendo che anche qui non restino gli spazi come in DataCattura, ho fatto un'altra query copiando query6 ed aggiustando il codice sql. Ho notato che, nella nuova query che ho creato, le colonne che in query6 erano primocampo e secondo campo (nella nuova query ovviamente chiamate diversamente), se viene lasciata vuota la casella di testo DataImago nella maschera 010_Esemplare, danno in ogni campo #Errore.
Se non sono stato chiaro nemmeno adesso dimmelo che metto in condivisione il DB aggiornato.
Daniele


Ciao Daniele,
senza data a me non va in errore bensì rilascia solo i due puntini; comunque puoi fare così:
sempre nella query, il nome SecondoCampo l'ho sostituito con Datalmago1
 
Datalmago1: IIf([PrimoCampo]=Null;Null;InserisciPunto([PrimoCampo]) & Right([PrimoCampo];4))
 
Vladimiro


Niente da fare. Viene errore già in PrimoCampo quindi l'IIF non può trovare null e restituire quindi null.
Inizialmente, cancellando una data da DataCattura la query mi dava i puntini ma poi ho provato a cancellare tutti i record dalla tabella 010_Esemplare e quando reinserisco i dati, viene sempre errore sia nella query relativa a DataCattura sia a quella DataImago..
Prova a cancellare i dati anche tu e guarda cosa succede..
Daniele

Il giorno mercoledì 4 novembre 2015 01:14:16 UTC+1, 
vlad...@libero.it
 ha scritto:

Sai l'impressione è che dire MODULO DI CLASSE, a prescindere, sia sempre una cosa che riempie e che invoglia...
 
 
@Alex


Inoltre, quando cancello una data già presente, ad es., in DataCattura in maschera 010_Esemplare (strano che NON mi dia errore dato che il campo è obbligatorio), mi mette i due puntini, se invece inserisco un nuovo esemplare senza data (per farlo ho dovuto impostare data non obbligatoria nella tabella), allora mi dà errore.
Daniele

 @Alex
 
ah, ecco: mi pareva strano!!!


Ciao Daniele,
fai così, sostituisci nella query PrimoCampo e SecondoCampo in questo modo:
 
PrimoCampo: IIf(IsNull([DataCattura]);Null;Replace([DataCattura];" ";""))
 
SecondoCampo: IIf(IsNull([DataCattura]);Null;InserisciPunto([PrimoCampo]) & Right([PrimoCampo];4))
 
Naturalmente al posto dei nomi PrimoCampo e SecondoCampo ci puoi mettere quello che vuoi.
 
Vladimiro


Funziona ! Vladimiro che ti devo dire, i grazie sono ormai ridondanti, vengo da te e ti offro una cena ?? :)
 
Ora, sempre relativamente al punto delle date di questo thread, ti vorrei chiedere un'altra cosa, ma comincio a sentirmi in imbarazzo..
 
Devo inserire un altro campo nella tabella 010_esemplare chiamata DataTrappolamento. A volte mettiamo delle trappole per prendere i coleotteri e le lasciamo circa una settimana, dopodichè le andiamo a controllare.
 
Il formato della data in questo campo sarà dunque, ad es. 29.V-04.VI.2015 per indicare che l'insetto è finito in trappola tra il 29 maggio e il 4 giugno (non possiamo infatti sapere il giorno preciso in cui ci è finito). Questa la mashera di input: 00.>L???\-00.>L???.0000
 
Ora, io ho provato a fare un paio di tentativi - prettamente intuitivi - per creare un nuovo modulo sulla base del tuo codice ma, com'era ovvio fosse, non ci sono riuscito.
 
Mi potresti dire come modificarlo per il mio nuovo intento ? E.. mi piacerebbe proprio capire la logica che hai usato per fare quel modulo..
 
Però, se la cosa richiede troppo tempo lascia perdere, metterò il campo senza formattazione..
 
Grazie.
 
Daniele


Ciao Daniele,
vedrò di inventarmi qualcosa; solo che per stasera è un po' complicato in quanto ho un po' da fare.
 
Veniamo a noi,
il numero da visualizzare deve essere così:
29.V-04.VI.2015
oppure così:
29.V.04.VI.2015
Vladimiro


No problem ci mancherebbe, non importa certo per stasera.
Deve essere come la prima che hai detto ossia, ripetendo, così: 
29.V-04.VI.2015
 
Buona serata.
 
Daniele

 Daniele
 
Ciao Daniele,
come da te richiesto ho inserito dei commenti nella nuova routine inserita nel modulo.
 
Questa volta ho avuto bisogno di creare due routine e due query in quanto ho dovuto dividere la stringa DataCattura in due parti.
 
1) Inserisci le due routine in un modulo standard:
 
Function InserisciPuntoSinistra(Stringa As String) As String
Dim i As Integer
Dim x As String
 
'conteggia le lettere che compongono la stringa
Select Case Len(Stringa)
' se le lettere sono 5
Case Is = 5
' la variabile x deve restituire
    x = x & Mid(Stringa, 1, 2) & "." & Mid(Stringa, 3, 1) & "." & Mid(Stringa, 4, 2) & "."
Case Is = 6
    x = x & Mid(Stringa, 1, 2) & "." & Mid(Stringa, 3, 2) & "." & Mid(Stringa, 5, 2) & "."
Case Is = 7
    x = x & Mid(Stringa, 1, 2) & "." & Mid(Stringa, 3, 3) & "." & Mid(Stringa, 6, 2) & "."
Case Else
    x = x & Mid(Stringa, 1, 2) & "." & Mid(Stringa, 3, 4) & "." & Mid(Stringa, 7, 2) & "."
End Select
'la funzione che richiamerai dove vuoi sara uguale alla variabile x
InserisciPuntoSinistra = x
End Function
 
Function InserisciPuntoDestra(Stringa As String) As String
Dim i As Integer
Dim x As String
 
Select Case Len(Stringa)
Case Is = 5
    x = x & Mid(Stringa, 1, 1) & "." & Mid(Stringa, 2, 4)
Case Is = 6
    x = x & Mid(Stringa, 1, 2) & "." & Mid(Stringa, 3, 4)
Case Is = 7
    x = x & Mid(Stringa, 1, 3) & "." & Mid(Stringa, 4, 4)
Case Else
    x = x & Mid(Stringa, 1, 4) & "." & Mid(Stringa, 5, 4)
End Select
 
InserisciPuntoDestra = x
End Function
 
2) Crea una prima query chiamata DividiStringaQuery:
 
SELECT [010_Esemplare].DataCattura, IIf(IsNull([DataCattura]),Null,Replace(Left([DataCattura],8)," ","")) AS PrimaMetà, IIf(IsNull([DataCattura]),Null,Replace(Right([DataCattura],8)," ","")) AS SecondaMetà
FROM 010_Esemplare
GROUP BY [010_Esemplare].DataCattura, IIf(IsNull([DataCattura]),Null,Replace(Left([DataCattura],8)," ","")), IIf(IsNull([DataCattura]),Null,Replace(Right([DataCattura],8)," ",""));
 
3) Crea per il momento una seconda query giusto per capire il suo funzionamento; successivamente i quattro campi li potrai incollare nella query che è Origine record della maschera dove vuoi visualizzare i dati finali:
SELECT DividiStringaQuery.PrimaMetà, InserisciPuntoSinistra([PrimaMetà]) AS Pm, DividiStringaQuery.SecondaMetà, InserisciPuntoDestra([SecondaMetà]) AS Sm, [Pm] & [Sm] AS RiunisciMetà
FROM DividiStringaQuery;
 
Vladimiro
 


Ops,
ho dimenticato che volevi il trattino al posto del punto.
 
Basta modificare la routine che si occupa della prima metà della stringa:
 
Function InserisciPuntoSinistra(Stringa As String) As String
Dim i As Integer
Dim x As String
 
'conteggia le lettere che compongono la stringa
Select Case Len(Stringa)
' se le lettere sono 5
Case Is = 5
' la variabile x deve restituire
    x = x & Mid(Stringa, 1, 2) & "." & Mid(Stringa, 3, 1) & "-" & Mid(Stringa, 4, 2) & "."
Case Is = 6
    x = x & Mid(Stringa, 1, 2) & "." & Mid(Stringa, 3, 2) & "-" & Mid(Stringa, 5, 2) & "."
Case Is = 7
    x = x & Mid(Stringa, 1, 2) & "." & Mid(Stringa, 3, 3) & "-" & Mid(Stringa, 6, 2) & "."
Case Else
    x = x & Mid(Stringa, 1, 2) & "." & Mid(Stringa, 3, 4) & "-" & Mid(Stringa, 7, 2) & "."
End Select
'la funzione che richiamerai dove vuoi sara uguale alla variabile x
InserisciPuntoSinistra = x
End Function
 
Di nuovo Vladimiro


Ciao Vladimiro grazie però mi viene così nella seconda query (i trattini li ho messi io per dare l'esatto incolonnamento):
 
PrimaMetà-------Pm------SecondaMetà-----Sm-------RiunisciMetà
-------------#Errore-----------------#Errore-----#Errore
1215VI20----12.15VI.20.--15VI2015-----15VI.2015--12.15VI.20.15VI.2015
 
Daniele

 Daniele
 
Ciao,
beh, l'errore ormai l'avresti dovuto capire da solo come risolverlo:
II° query:
 
SELECT DividiStringaQuery.PrimaMetà, IIf(IsNull([PrimaMetà]),Null,InserisciPuntoSinistra([PrimaMetà])) AS Pm, DividiStringaQuery.SecondaMetà, IIf(IsNull([SecondaMetà]),Null,InserisciPuntoDestra([SecondaMetà])) AS Sm, [Pm] & [Sm] AS RiunisciMetà
FROM DividiStringaQuery;
 
per quanto riguarda invece la visualizzazione col trattino, prova a guardare al seguente link e dimmi se va bene:
 
https://onedrive.live.com/?id=DFDFB766AA86F9D8%21306&cid=DFDFB766AA86F9D8&group=0&parId=DFDFB766AA86F9D8%21304&o=OneUp
 
 
Vladimiro


Ciao,
potevo cercare di capire da solo si ma se l'errore era nel vba sarebbe stato molto complicato se non impossibile..
Con la nuova istruzione non viene più errore ma il resto è identico. Quindi mi domandavo se il campo "riunisci metà" (e anche gli altri) deve essere in quel formato. Perchè è il campo "riunisci metà" che devo mettere come origine dati per la casella controllo  data nella maschera? effettivamente non capisco cosa vuol dire:
 "Crea per il momento una seconda query giusto per capire il suo funzionamento; successivamente i quattro campi li potrai incollare nella query che è Origine record della maschera dove vuoi visualizzare i dati finali"
 
Nel link che ni hai dato mi dice: l'elemento è stato eliminato, è scaduto oppure non hai l'autorizzazione per visualizzarlo.
 
Daniele


Ciao Daniele,
strano che non riesci a vedere il link, io lo continuo a vedere tranquillamente.
 
Facciamo così,
inserisci le seguenti date nella tabella 010_Esemplare:
DataCattura
01.I   -02.I   .2015
01.II  -02.II  .2015
01.III -02.III .2015
01.IV  -02.IV  .2015
01.V   -02.V   .2015
01.VI
  -
02.VI
  .2015
01.VII -02.VII .2015
01.VIII-02.VIII.2015
01.IX  -02.IX  .2015
01.X   -02.X   .2015
10.I   -15.IV  .2015
25.IV  -12.X   .2015
22.III -
11.VI
  .2015
 
Crea le due query, così come te le ho scritte, esegui la seconda query e dimmi se il risultato è quello che cerchi.
Vladimiro


Vladimiro,
non ho inesrito tutte le date ma, ad es, il formato che dà nella seconda query nel campo riunisci metà, inserendo - 01.IV  -02.IV  .2015 - nella nella maschera 010_esemplare è:
01.IV02-IV.02IV.2015
 
Tu l'hai provato ?
 
Daniele


Vladimiro,
non so se c'entra qualcosa, ma ne DB c'è un altro modulo che mi avevi fatto creare inizialmente per l'eliminazione degli spazi in DataCattura. Quello di cui stiamo parlando adesso è DataTrappolamento (ovviamente o inserito nel tuo codice DataTrappolamento al posto di DataCattura nella prima query).
Per quello di cui stiamo parlando adesso io ho creato un altro modulo, non vorrei si dessero noia. Ho comunque provato a cancellare il primo modulo ma non cambia nulla.
Daniele


La o senz'acca è stata una mancanza di pressione sufficiente sul tasto "h"  :)


Ciao Daniele,
purtroppo c'è stato un problema di connessione.
 
Lascia perdere la maschera.
 
1)Le due routine le devi inserire dove sta l'altra: non vanno in conflitto in quanto si chiamano diversamente :-)
 
2)Nella tabella 010_Esemplare modifica nel campo DataCattura la maschera d'input inserendo i seguenti segnaposto 00.>L???\-00.>L???.0000
 
3)Copia e incolla le date che ho postato precedentemente.
 
4)Copia e incolla le due query
 
5)Apri la seconda query e vedi i risultati.
 
Vladimiro


Ciao Daniele,
adesso ho un po' più di tempo da dedicarti :-)
 
Siccome non rispondi posso solo presumere che stai ancora in alto mare.
 
Certamente l'ho provato e naturalmente funziona:
 
RiunisciMetà
01.I-02.I.2015
01.II-02.II.2015
01.III-02.III.2015
01.IV-02.IV.2015
01.IX-02.IX.2015
01.V-02.V.2015
01.VI-02.VI.2015
01.VII-02.VII.2015
01.VIII-02.VIII.2015
01.X-02.X.2015
10.I-15.IV.2015
22.III-11.VI.2015
25.IV-12.X.2015
 
Secondo me devi guardare bene come hai inserito le date.
 
Ho notato che se involontariamente qualche singolo numero (o numero romano) non viene messo nel giusto intervallo, magari saltando qualche spazio, la visualizzazione finale è come quella che mi hai fatto vedere:
01.IV02-IV.02IV.2015
 
Vladimiro


Ciao Vladimiro,
scusami se non avevo risposto ma ieri pom. sono dovuto assentarmi dal mio computer e sono tornato solo poche ore fa.
 
Ho capito dov'era l'inghippo. Quando digitavo la data nella maschera 010_Esemplare, se ad es. il mese romano era V, io andavo avanti sugli spazi vuoti con la freccettina ed in tal modo non si eliminavano i segnaposto _ ! Andando avanto invece con la barra spaziatrice si eliminano i segnaposto e quindi, finalmente, nella 2/a query funziona !!!
Poi, nella query della maschera ho aggiunto la seconda query ma non avendo il collegamento tra quest'ultima e la tabella 010_Esemplare, ho dovuto aggiungere il campo IDEsemplare alle due query. Così anche nella casella di testo della maschera funziona tutto bene.
 
Grazie davvero tanto di tutto !
 
Adesso devo trovare qualcosa di nuovo da chiederti però :)
 
Un salutone per il momento..
 
Daniele