Newsgroup: it.comp.appl.access
Titolo: stringhe a lunghezza zero

Concateno 3 stringhe di tre differenti textbox in una textbox chiamata 
"Me.DescrizioneCompleta" per un massimo di 50 caratteri, per� se nella prima 
textbox inserisco 50 caratteri mi genera l'errore perch� i caratteri 
risultano essere 53..
Come faccio a eliminare le stringhe a lunghezza zero sulla funzione 
elencata?
Function descrcompl() As Boolean
stringa = 0
stringa = Len(Nz(Me.Descrizione & " ", "")) + Len(Nz(Me.Formato & " ", 0)) + 
Len(Nz(Me.Colore & " ", 0))
If stringa > 50 Then
MsgBox "attenzione limite caratteri = 50", vbOKOnly
        descrcompl = True
Else
  Me.DescrizioneCompleta = Nz((Me.Descrizione + " "), Null) & Nz((Me.Formato 
+ " "), Null) & Nz((Me.Colore + " "), Null)
  descrcompl = False
End If
End Function
Un grazie a tutti
Massimo


Prima di sommarle, controlla se sono nulle, se non sono nulle le sommi 
altrimenti no... 

 altrimenti no...
Con una condizione If Then?

 
La questione e' che se inserisci piu' di 50 caratteri globalmente hai 
l'errore
stringa = trim(left(controllo1 & controllo2 & controllo3 & space(50),50))
that's all
--
ac


Function descrcompl() As Boolean
Dim A, B, C
if isnull(Len(Nz(Me.Descrizione & " ", ""))) then
    A=0
else
    A=Len(Nz(Me.Descrizione & " ", ""))
end if
if isnull(Len(Nz(Me.Formato & " ", 0))) then
    B=0
else
    B=Len(Nz(Me.Formato & " ", 0))
end if
if isnull(Len(Nz(Me.Colore & " ", 0))) then
    C=0
else
    C=Len(Nz(Me.Colore & " ", 0))
end if
stringa = 0
stringa = A+B+C
If stringa > 50 Then
MsgBox "attenzione limite caratteri = 50", vbOKOnly
        descrcompl = True
Else
  Me.DescrizioneCompleta = Nz((Me.Descrizione + " "), Null) & Nz((Me.Formato
+ " "), Null) & Nz((Me.Colore + " "), Null)
  descrcompl = False
End If
End Function
Prova cosï¿½... 

 ac
non devo inserire pi� di 50 caratteri ma se inserisco nella textbox 
Me.Descrizione un articolo che contiene 50 caratteri, lasciando vuoti le 
textbox Me.Formato e Me.Colore, il tutto non dovrebbe generare l'errore.

 ha scritto nel messaggio 
news:hbselc$u1h$1...@aioe.org...

Io farei cos�:
Dim Area1 as string, Area2 as string, Area3 as string
Dim AreaCompleta as string
Area1 = trim$ (nz (me.controllo1))
Area2 = trim$ (nz (me.controllo2))
Area3 = trim$ (nz (me.controllo3))
AreaCompleta = left$ (trim$(Area1 & " " & Area2 & " " & Area3),50)
Comunque, se i 50 caratteri dipendono dalla dimensione di un campo di 
tabella, per fare in modo che la routine funzioni anche se in un futuro tu 
cambi la lunghezza del campo e ti dimentichi di cambiare il codice, l'ultima 
istruzione sarebba meglio scriverla cos�:
AreaCompleta = left$ (trim$(Area1 & " " & Area2 & " " & 
Area3),RecordSetTabella.Fields("CampoDellaTabella").FieldSize)
Ciao
Antonio

 
E' esattamente quello che fa quell'istruzione
stringa = trim(controllo1 & " " & controllo2 & " " & controllo3)
if len(stringa) > 50 then
	msgbox "Orrore! Stringa eccede massimo"
else
	....istruzioni per l'ok
endif
--
ac

Grazie a tutti voi sono riuscito a realizzare la funzione........
Volevo capire se fosse possibile ridurre tutte le condizioni o se v� bene
cos�....
 Function descrcompl() As Boolean
Dim DescrizioneCompleta As String
Dim Stringa As Integer
Dim Stringa1 As String
Dim A, B, C, D, E, F, G As String
Stringa = 0
If IsNull(Me.Descrizione) Then
A = ""
Else
A = " "
End If
If IsNull(Me.Formato) Then
B = ""
Else
B = " "
End If
If IsNull(Me.Colore) Then
C = ""
Else
C = " "
End If
If IsNull(Me.Marchio) Then
D = ""
Else
D = " "
End If
If IsNull(Me.Serie) Then
E = ""
Else
E = " "
End If
If IsNull(Me.Scelta) Then
F = ""
Else
F = " " & "SC."
End If
If IsNull(Me.Tono) Then
G = ""
Else
G = " " & "T."
End If
Stringa1 = Trim(Me.Descrizione & B & Me.Formato & C & Me.Colore & D &
Me.Marchio1 & E & Me.Serie & F & Me.Scelta & G & Me.Tono)
Stringa = Len(Stringa1)
If Stringa > 50 Then
MsgBox "attenzione limite caratteri = 50", vbOKOnly
descrcompl = True
Else
Me.DescrizioneCompleta = Stringa1
descrcompl = False
End If
End Function
Grazie a tutti
Massimo