(troppo vecchio per rispondere)
Problema con funzione per la verifica del cofice fiscale: "Funzione non definita"
Dino
2010-12-22 09:14:50 UTC
Ciao a tutti ho questa problematica (forse banale) ma non riesco a
veniren fuori.

Ho recuperato sul nostro NG da un vecchio post una funzione per la
verifica del codice fiscale:

Private Function CalcolaK(pValue) As String


Dim CalcolaK As String
Dim idx As Long, i As Long, X As Long, Somma As Long, sCF As String
Dim Dispari As Variant
sCF = IIf(Len(pValue) > 15, UCase(Left(pValue, 15)), pValue)
Dispari = Array(1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18, 20, 11,
3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23)
For i = 1 To Len(sCF)


'qui aggiungi la Ucase altrimenti se gli passi caratteri minuscoli
ricevi un
errore
X = Asc(Mid(UCase(pValue), i, 1))
idx = IIf(X < 65, X - 48, X - 65)
Somma = Somma + IIf(0 = i Mod 2, idx, Dispari(idx))
Next
K = Chr(Somma Mod 26 + 65)
CalcolaK = IIf(K = UCase(Right(pValue, 1)), True, False)
End Function
End Sub

Questa funzione l'ho inserita in un modulo che ho chiamato CF.

dopo (sempre da istruzioni del post) sono andato nel campo "Codice
fiscale" e nell'evento "prima di aggiornare" ho inserito queso codice:

Private Sub Codice_fiscale_BeforeUpdate(Cancel As Integer)
Select Case Nz(Len([Codice fiscale]))
Case 16
If Not CalcolaK([Codice fiscale]) Then
MsgBox "Codice Fiscale Errato"
Cancel = True

Case 0
Case Else
MsgBox "Lunghezza del Codice Fiscale o P. Iva errata",
vbCritical, "Attenzione": Cancel = True
End Select

End Sub

quando vado ad inserire un qualsiasi codice fiscale mi da l'errore
"Funzione non definita".

non riesco a capire perche' la funzione e' in un modulo salvato
correttamente con un altro nome.

Ho inserito anche i rif DAO 3,6 (ma non c'entra niente) ma il ris non
cambia.

Puo' forse centrare il fatto che il camp abia degli spazi???(nel
codice pero' e' inserito nelle parentesi quadre).

Grazie in anticipo

Dino
sv
2010-12-22 14:26:20 UTC
Post by Dino
Ciao a tutti ho questa problematica (forse banale) ma non riesco a
veniren fuori.
Ho recuperato sul nostro NG da un vecchio post una funzione per la
Private Function CalcolaK(pValue) As String
Dim CalcolaK As String
Dim idx As Long, i As Long, X As Long, Somma As Long, sCF As String
Dim Dispari As Variant
sCF = IIf(Len(pValue) > 15, UCase(Left(pValue, 15)), pValue)
Dispari = Array(1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18, 20, 11,
3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23)
For i = 1 To Len(sCF)
'qui aggiungi la Ucase altrimenti se gli passi caratteri minuscoli
ricevi un
errore
X = Asc(Mid(UCase(pValue), i, 1))
idx = IIf(X < 65, X - 48, X - 65)
Somma = Somma + IIf(0 = i Mod 2, idx, Dispari(idx))
Next
K = Chr(Somma Mod 26 + 65)
CalcolaK = IIf(K = UCase(Right(pValue, 1)), True, False)
End Function
End Sub
Questa funzione l'ho inserita in un modulo che ho chiamato CF.
dopo (sempre da istruzioni del post) sono andato nel campo "Codice
Private Sub Codice_fiscale_BeforeUpdate(Cancel As Integer)
Select Case Nz(Len([Codice fiscale]))
Case 16
If Not CalcolaK([Codice fiscale]) Then
MsgBox "Codice Fiscale Errato"
Cancel = True
Case 0
Case Else
MsgBox "Lunghezza del Codice Fiscale o P. Iva errata",
vbCritical, "Attenzione": Cancel = True
End Select
End Sub
quando vado ad inserire un qualsiasi codice fiscale mi da l'errore
"Funzione non definita".
non riesco a capire perche' la funzione e' in un modulo salvato
correttamente con un altro nome.
Ho inserito anche i rif DAO 3,6 (ma non c'entra niente) ma il ris non
cambia.
Puo' forse centrare il fatto che il camp abia degli spazi???(nel
codice pero' e' inserito nelle parentesi quadre).
Grazie in anticipo
Dino
La funzione deve essere pubblica per potersi richiamare da qualunque parte
dell'applicazione.
Pertanto:

Public Function CalcolaK(pValue) As String
.
.
.

End Function

Inoltre End Sub dopo End Function non è corretto. Fai un Debug e vedi cosa
accade.

--
sv
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Dino
2010-12-22 19:24:38 UTC
Post by sv
Post by Dino
Ciao a tutti ho questa problematica (forse banale) ma non riesco a
veniren fuori.
Ho recuperato sul nostro NG da un vecchio post una funzione per la
Private Function CalcolaK(pValue) As String
 Dim CalcolaK As String
Dim idx As Long, i As Long, X As Long, Somma As Long, sCF As String
 Dim Dispari As Variant
 sCF = IIf(Len(pValue) > 15, UCase(Left(pValue, 15)), pValue)
Dispari = Array(1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18, 20, 11,
3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23)
 For i = 1 To Len(sCF)
'qui aggiungi la Ucase altrimenti se gli passi caratteri minuscoli
ricevi un
errore
      X = Asc(Mid(UCase(pValue), i, 1))
     idx = IIf(X < 65, X - 48, X - 65)
     Somma = Somma + IIf(0 = i Mod 2, idx, Dispari(idx))
 Next
K = Chr(Somma Mod 26 + 65)
 CalcolaK = IIf(K = UCase(Right(pValue, 1)), True, False)
 End Function
 End Sub
Questa funzione l'ho inserita in un modulo che ho chiamato CF.
dopo (sempre da istruzioni del post) sono andato nel campo "Codice
Private Sub Codice_fiscale_BeforeUpdate(Cancel As Integer)
Select Case Nz(Len([Codice fiscale]))
                Case 16
                If Not CalcolaK([Codice fiscale]) Then
                MsgBox "Codice Fiscale Errato"
                Cancel = True
           Case 0
           Case Else
           MsgBox "Lunghezza del Codice Fiscale o P. Iva errata",
vbCritical, "Attenzione": Cancel = True
End Select
End Sub
quando vado ad inserire un qualsiasi codice fiscale mi da l'errore
"Funzione non definita".
non riesco a capire perche' la funzione e' in un modulo salvato
correttamente con un altro nome.
Ho inserito anche i rif DAO 3,6 (ma non c'entra niente) ma il ris non
cambia.
Puo' forse centrare il fatto che il camp abia degli spazi???(nel
codice pero' e' inserito nelle parentesi quadre).
Grazie in anticipo
Dino
La funzione deve essere pubblica per potersi richiamare da qualunque parte
dell'applicazione.
Public Function CalcolaK(pValue) As String
.
.
.
End Function
Inoltre End Sub dopo End Function non corretto. Fai un Debug e vedi cosa
accade.
--
sv
--
- Mostra testo citato -
Ciao SV,finalmente sono riuscito ad effettuare qualche prova.In
effetti mettendo plublic mi legge la funzion e.Ho anche tolto "end
sub" che non avevo notato.Adesso ho un'altra problematica;quando
inserisco il codice fiscale mi da "errore di compilazione"...
"Dichiarazione doppia nella area di validita' corrente".Selezionando
la prima riga di codice del modulo.
Se ha iun attimo prova gentilmente la funzione (che ti ho rip sopra)

Grazie in anticipo

Dino
sv
2010-12-23 06:35:39 UTC
Post by Dino
Post by sv
Post by Dino
Ciao a tutti ho questa problematica (forse banale) ma non riesco a
veniren fuori.
Ho recuperato sul nostro NG da un vecchio post una funzione per la
Private Function CalcolaK(pValue) As String
 Dim CalcolaK As String
Dim idx As Long, i As Long, X As Long, Somma As Long, sCF As String
 Dim Dispari As Variant
 sCF = IIf(Len(pValue) > 15, UCase(Left(pValue, 15)), pValue)
Dispari = Array(1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18, 20, 11,
3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23)
 For i = 1 To Len(sCF)
'qui aggiungi la Ucase altrimenti se gli passi caratteri minuscoli
ricevi un
errore
      X = Asc(Mid(UCase(pValue), i, 1))
     idx = IIf(X < 65, X - 48, X - 65)
     Somma = Somma + IIf(0 = i Mod 2, idx, Dispari(idx))
 Next
K = Chr(Somma Mod 26 + 65)
 CalcolaK = IIf(K = UCase(Right(pValue, 1)), True, False)
 End Function
 End Sub
Questa funzione l'ho inserita in un modulo che ho chiamato CF.
dopo (sempre da istruzioni del post) sono andato nel campo "Codice
Private Sub Codice_fiscale_BeforeUpdate(Cancel As Integer)
Select Case Nz(Len([Codice fiscale]))
                Case 16
                If Not CalcolaK([Codice fiscale]) Then
                MsgBox "Codice Fiscale Errato"
                Cancel = True
           Case 0
           Case Else
           MsgBox "Lunghezza del Codice Fiscale o P. Iva errata",
vbCritical, "Attenzione": Cancel = True
End Select
End Sub
quando vado ad inserire un qualsiasi codice fiscale mi da l'errore
"Funzione non definita".
non riesco a capire perche' la funzione e' in un modulo salvato
correttamente con un altro nome.
Ho inserito anche i rif DAO 3,6 (ma non c'entra niente) ma il ris non
cambia.
Puo' forse centrare il fatto che il camp abia degli spazi???(nel
codice pero' e' inserito nelle parentesi quadre).
Grazie in anticipo
Dino
La funzione deve essere pubblica per potersi richiamare da qualunque parte
dell'applicazione.
Public Function CalcolaK(pValue) As String
.
.
.
End Function
Inoltre End Sub dopo End Function non corretto. Fai un Debug e vedi cosa
accade.
--
sv
--
questo articolo e` stato inviato via web dal servizio
gratuitohttp://www.newsland.it/newssegnala gli abusi ad ***@newsland.it-
Nascondi testo citato
Post by Dino
Post by sv
- Mostra testo citato -
Ciao SV,finalmente sono riuscito ad effettuare qualche prova.In
effetti mettendo plublic mi legge la funzion e.Ho anche tolto "end
sub" che non avevo notato.Adesso ho un'altra problematica;quando
inserisco il codice fiscale mi da "errore di compilazione"...
"Dichiarazione doppia nella area di validita' corrente".Selezionando
la prima riga di codice del modulo.
Se ha iun attimo prova gentilmente la funzione (che ti ho rip sopra)
Grazie in anticipo
Dino
La funzione CalcolaK ti restituisce una stringa pertanto
Dim CalcolaK As String è errato, lo devi togliere.

--
sv
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Dino
2010-12-23 15:25:51 UTC
Post by sv
Post by Dino
Post by sv
Post by Dino
Ciao a tutti ho questa problematica (forse banale) ma non riesco a
veniren fuori.
Ho recuperato sul nostro NG da un vecchio post una funzione per la
Private Function CalcolaK(pValue) As String
 Dim CalcolaK As String
Dim idx As Long, i As Long, X As Long, Somma As Long, sCF As String
 Dim Dispari As Variant
 sCF = IIf(Len(pValue) > 15, UCase(Left(pValue, 15)), pValue)
Dispari = Array(1, 0, 5, 7, 9, 13, 15, 17, 19, 21, 2, 4, 18, 20, 11,
3, 6, 8, 12, 14, 16, 10, 22, 25, 24, 23)
 For i = 1 To Len(sCF)
'qui aggiungi la Ucase altrimenti se gli passi caratteri minuscoli
ricevi un
errore
      X = Asc(Mid(UCase(pValue), i, 1))
     idx = IIf(X < 65, X - 48, X - 65)
     Somma = Somma + IIf(0 = i Mod 2, idx, Dispari(idx))
 Next
K = Chr(Somma Mod 26 + 65)
 CalcolaK = IIf(K = UCase(Right(pValue, 1)), True, False)
 End Function
 End Sub
Questa funzione l'ho inserita in un modulo che ho chiamato CF.
dopo (sempre da istruzioni del post) sono andato nel campo "Codice
Private Sub Codice_fiscale_BeforeUpdate(Cancel As Integer)
Select Case Nz(Len([Codice fiscale]))
                Case 16
                If Not CalcolaK([Codice fiscale]) Then
                MsgBox "Codice Fiscale Errato"
                Cancel = True
           Case 0
           Case Else
           MsgBox "Lunghezza del Codice Fiscale o P. Iva errata",
vbCritical, "Attenzione": Cancel = True
End Select
End Sub
quando vado ad inserire un qualsiasi codice fiscale mi da l'errore
"Funzione non definita".
non riesco a capire perche' la funzione e' in un modulo salvato
correttamente con un altro nome.
Ho inserito anche i rif DAO 3,6 (ma non c'entra niente) ma il ris non
cambia.
Puo' forse centrare il fatto che il camp abia degli spazi???(nel
codice pero' e' inserito nelle parentesi quadre).
Grazie in anticipo
Dino
La funzione deve essere pubblica per potersi richiamare da qualunque parte
dell'applicazione.
Public Function CalcolaK(pValue) As String
.
.
.
End Function
Inoltre End Sub dopo End Function non corretto. Fai un Debug e vedi cosa
accade.
--
sv
--
questo articolo e` stato inviato via web dal servizio
Nascondi testo citato
Post by Dino
Post by sv
- Mostra testo citato -
Ciao SV,finalmente sono riuscito ad effettuare qualche prova.In
effetti mettendo plublic mi legge la funzion e.Ho anche tolto "end
sub" che non avevo notato.Adesso ho un'altra problematica;quando
inserisco il codice fiscale mi da "errore di compilazione"...
"Dichiarazione doppia nella area di validita' corrente".Selezionando
la prima riga di codice del modulo.
Se ha iun attimo prova gentilmente la funzione (che ti ho rip sopra)
Grazie in anticipo
Dino
La funzione CalcolaK ti restituisce una stringa pertanto
Dim CalcolaK As String è errato, lo devi togliere.
--
sv
--
- Mostra testo citato -
Il modulo sembra funzionare.Mi da errore l'istruzione Select nel
campo.Devo sistemenrla.
Volevo sapere se secondo te questo codice funziona bene per verificare
i codici fiscali (o e' meglio utilizzare i vari sw in rete).
Ci aggiornaiamo a dopo le prove.

Grazie ancora
Dino
sv
2010-12-23 15:45:22 UTC
Dino ha scritto:

[cut]
Post by Dino
Il modulo sembra funzionare.Mi da errore l'istruzione Select nel
campo.Devo sistemenrla.
Volevo sapere se secondo te questo codice funziona bene per verificare
i codici fiscali (o e' meglio utilizzare i vari sw in rete).
Ci aggiornaiamo a dopo le prove.
Grazie ancora
Dino
Vedi qui:

http://lnx.accessgroup.it/community/howto/utility-codice-fiscale.html

--
sv
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it
Dino
2010-12-23 17:50:00 UTC
Post by sv
[cut]
Post by Dino
Il modulo sembra funzionare.Mi da errore l'istruzione Select nel
campo.Devo sistemenrla.
Volevo sapere se secondo te questo codice funziona bene per verificare
i codici fiscali (o e' meglio utilizzare i vari sw in rete).
Ci aggiornaiamo a dopo le prove.
Grazie ancora
Dino
http://lnx.accessgroup.it/community/howto/utility-codice-fiscale.html
--
sv
--
Come sempre seo preciso ed esauriente (troppi complimenti sotto Natale
ci vogliono).E' proprio quello che cercavo.anche se come dice l'autore
non c'e' mai la sicurezza estrema della correttezza.Tu come ha
irisolto il problema????ho trovato in rete dei softwere molto semplici
che continuano ad aggiornarsi via Web.

Concludo ringraziandoti ancora per la tua disponibilita' e ti auguro
Buone feste

Dino
sv
2010-12-23 18:16:38 UTC
Post by Dino
Post by sv
[cut]
Post by Dino
Il modulo sembra funzionare.Mi da errore l'istruzione Select nel
campo.Devo sistemenrla.
Volevo sapere se secondo te questo codice funziona bene per verificare
i codici fiscali (o e' meglio utilizzare i vari sw in rete).
Ci aggiornaiamo a dopo le prove.
Grazie ancora
Dino
http://lnx.accessgroup.it/community/howto/utility-codice-fiscale.html
--
sv
--
questo articolo e` stato inviato via web dal servizio
Come sempre seo preciso ed esauriente (troppi complimenti sotto Natale
ci vogliono).E' proprio quello che cercavo.anche se come dice l'autore
Beh l'autore vedi che è il sottoscritto..
:-)
Post by Dino
non c'e' mai la sicurezza estrema della correttezza.Tu come ha
irisolto il problema????ho trovato in rete dei softwere molto semplici
che continuano ad aggiornarsi via Web.
Concludo ringraziandoti ancora per la tua disponibilita' e ti auguro
Buone feste
Auguri a te e famiglia.
Post by Dino
Dino
--
sv
--
questo articolo e` stato inviato via web dal servizio gratuito
http://www.newsland.it/news segnala gli abusi ad ***@newsland.it