Sommare i numeri che compongono un numero!

giovedì 20 settembre 2007 - 14.57

iltexano Profilo | Newbie

Posto il suggerimento di un altro ragazzo di un altro forum che mi stsa aiutando con l'implementazione di questa funzione:

Dati 3 Campi:
Campo1 = 123
Campo2 = 5556667
Campo3 = 0

Cosa ti aspetti di ottenere...?

ValoreFinale1=1+2+3=6
ValoreFinale2=5+5+5+6+6+6+7=40
ValoreFinale3=0

questo è ciò che devo ottenere!

la funzione suggeritami è questa:

Function fSumChar(varNum As Variant) As Long Dim strNum As String Dim iCount As Integer Dim iLen As Integer Dim lSum As Long If Fix(varNum) <> varNum Then MsgBox "NUMERO DECIMALE non valido", vbCritical, "AVVISO" fSumChar = 0 Exit Function End If strNum = CLng(varNum) & "" iLen = Len(strNum) For iCount = 1 To iLen lSum = lSum + CByte(Mid$(strNum, iCount, 1)) Next fSumChar = lSum End Function

che però mi da sempre errore, forse xche il primo campo che va a sommare è 003?

cmq sono in attesa di sue nuove, avete qualche consiglio?

amelix Profilo | Expert

Scusa la domanda...
Ma dove dovresti far girare questa roba? (Dal codice sembra Access...)

Dalla tua domanda (003 da sommare) mi viene il dubbio che il campo sia di tipo numerico...

Andrea - http://www.MelisWeb.eu/

iltexano Profilo | Newbie

esatto! parliamo di access!

il campo è di testo! ma mi serve di testo perche senno non si visualizzano gli zeri davanti! che palle! grrr

ti sono utili queste info?

amelix Profilo | Expert

Controlla la sintassi...
É un po' che non scrivo in vb...

Function fSumChar(varNum As String) As Long Dim strNum As String Dim iCount As Integer Dim iLen As Integer Dim lSum As Long Dim iVal As Long strNum = varNum iLen = Len(strNum) For iCount = 1 To iLen If InStr("0123456789", Mid$(strNum, iCount, 1)) = 0 Then MsgBox "NUMERO DECIMALE non valido", vbCritical, "AVVISO" fSumChar = 0 Exit Function Else iVal = CLng(Mid$(strNum, iCount, 1)) lSum = lSum + CByte(Mid$(strNum, iCount, 1)) End If Next fSumChar = lSum End Function

Andrea - http://www.MelisWeb.eu/

iltexano Profilo | Newbie

ho risolto cosi!

Function fSumChar(varNum As Variant) As Long Dim strNum As String Dim iCount As Integer Dim iLen As Integer Dim lSum As Long If Fix(varNum) <> varNum Then 'MsgBox "NUMERO DECIMALE non valido", vbCritical, "AVVISO" 'fSumChar = 0 'Exit Function End If strNum = CLng(varNum) & "" iLen = Len(strNum) For iCount = 1 To iLen lSum = lSum + CByte(Mid$(strNum, iCount, 1)) Next fSumChar = lSum End Function

grazie per l'aiuto cmq!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5