Newsgroup: it.comp.appl.access
Titolo: Sempre  if Then Else

Ciao a tutti :
 
 
Volevo perfezionare l'applicazione  ma è tanto che provo e con risultati scarsi se qualcuno mi aiuta ?
 
dal controllo  "TXTOrdineEbay" cerco il numero ordine :
 
Private Sub TXTOrdineEbay_AfterUpdate()
 
    ' Trova il record corrispondente al controllo
 
Dim rs As Object
 
    Set rs = Me.Recordset.Clone
        rs.FindFirst "[NordineEbay] = '" & Me![TXTOrdineEbay] & "'"
            Me.Bookmark = rs.Bookmark
 
e fin qui tutto bene e trovo il record ora però volevo che il focus venisse spostato , 
 
se nel controllo "NDocumentoSpedizione" del record trovato  
c'è un valore che inizia con EB oppure con CB 
allora il focus si deve spostare sul controllo suddetto "NDocumentoSpedizione"
 
se nel controllo "NDocumentoSpedizione" del record trovato  
c'è un valore che inizia con RA  
allora il focus si deve spostare sul controllo "PesoLordoRAC "
 
se nel controllo "NDocumentoSpedizione" del record trovato 
non c'è nessun valore  
allora il focus si deve spostare sul controllo "PesoLordo "
 
Io non riesco a tradurre in codice  quando detto sopra 
datemi una  mano 
 
Giuseppe

...
 
Provaci, butta giù qualche cosa e ti aiutiamo... ovviamente compresa l'indentazione corretta... e porterai ancora pazienza de te lo faccio notare...!
 
Fornirti codice PAPPA PRONTA... è poco da NewsGroup...
 
@Alex


Senti  "caro Alex"  (scusa se ti dico caro ma solo perchè potresti essere mio figlio o nipote ).
 
Io non sono tipo da pappa pronta  figurati , nella vita mi sono fatto un 
mazzo che neanche ti immagini e l'impegno paga sempre .
 
Però questo che faccio con access ( e lo vedi dall'orario ) è un diversivo non è un lavoro .
 
Chiarito questo , il codice mi funziona ma solo in parte , non mi funziona la parte  che dovrebbe mettere il focus su "pesoLordo" quando non trova nessun valore  nella casella controllo 
 
If Not IsNull(Me.NDocumentoSpedizione) Then
                Select Case Left(Me.NDocumentoSpedizione, 2)
 
                        Case "CB"
                                Me.NDocumentoSpedizione.setfocus
 
                        Case "EB"
                                 Me.NDocumentoSpedizione.setfocus
 
	      Case "RA"
                                 Me.pesoLordoRac.setfocus
 
 ---------------->  Case Else
 ---------------->           Me.PesoLordo.setfocus
 
 
                        End Select

L'orario è lo stesso che ci porta a risponderti... ;-) che poi possa essere tuo figlio come età non saprei ma penso sempre che non debba essere una condizione che modifica il modo di approccio da una e dall'altra parte.
 
Detto questo credo tu possa commettere un errore tecnico abbasta da grave.
Quando controlli con isnull la textbox non consideri la natira del contento.
La verifica del valore NULL è solo una parte del controllo che devi fare... in quanto NULL e NULLSTRING sono 2 cose differenti e già qui tu stai scartandone una che ti metterebbe in crisi.
Il controllo infatti poter discriminare null o NULLSTRING è diverso.
Aggiungo però che tu hai un'altro vincolo... 2 caratteri, ovvero quelli che poi vuoi estrarre.
Se ne contiene solo 1...?
 
Tutti questi casi li devi valutare nella possibilità di avere un errore che andrebbe gestito con la classica gestione errori...
 
Per verificare tutte le condizioni potresti fare cosi:
 
It len(me!NomeControllo & vbnullstring)>2 the...
  Select case left(....)
  ....
  End Select
Else
 ' qui hai stringa nulla, vuota o <2 chars
End if
 
@Alex

 @Alex
 
ho semplicemente  inserito questo  "& vbNullString" e funziona perfettamente 
 
 
If Not IsNull(Me.NDocumentoSpedizione & vbNullString) Then
 
                Select Case Left(Me.NDocumentoSpedizione, 2)
 
                        Case "CB"
                                Me.NDocumentoSpedizione.SetFocus
 
                        Case "EB"
                                 Me.NDocumentoSpedizione.SetFocus
 
                        Case "RA"
                                 Me.PesoLordoRAC.SetFocus
 
                        Case Else
                                 Me.PesoLordo.SetFocus
 
 
                        End Select
 
                        End if
 
GRAZIE 

....
 
Hai ragionato sul contenuto...?
Se il tuo Controllo contiene solo 1 Carattere...?
 
@Alex


Dal ragionamento fatto non vedo controindicazioni 
il controllo in questione contiene sempre valori di 12 caratteri 
che iniziano con RA-CB-EB oppure nessun valore 
 
Ciao Grazie

Devi sempre riflettere prima di rispondere.
Funziona solo perché ora dici che il controllo ha 12 caratteri... se lo avessi detto prima...
 
Per farti però capire la mia osservazione ti suggerisco di provare ad eseguire il left di 2 caratteri da una stringa che ne contiene 1 se riesci...
 
Quindi se hai le idee chiare le cose si affrontano in modo tecnico e si capiacono le criticità altrimenti... tu non impari molto e tendenzialmente generi cosice con bachi.
 
Saluti.
@Alex