RE:escribir numeros en letras
Parece que aún no has resuelto del todo, esto está en una bd en access, pero tu sabes que el código es casi el mismo, pues las funciones usadas son las mismas que hay en vb, está probado, es una bd de cheques de solicitudes de compras , pruébalo, puede ser que tenga algo particular del software pero sabrás diferenciar lo que necesitas,
Saludos, Tilky
Yo estoy deseperada igual que tu por otro error, asi es que entiendo tu apuro.
qmenudo = (qcifra - Int(qcifra)) * 100
partent = Int(qcifra)
iletras = Space(50)
rs.Index = "Primarykey"
sigue = True
While sigue
Select Case partent
Case Is <= 100
proc99
Case Is <= 999
proc101999
Case Is <= 100000
proc100000
Case Is < 1000000
procmillon
Case Is >= 1000000
procmasmillon
End Select
Wend
menudo
rs.Seek "=", tipo.Value, consecutivo.Value
If rs.NoMatch = False Then
rs.Edit
rs.Fields("totalet") = iletras
rs.Update
End If
rs.Close
Exit Sub
End Sub
Private Sub proc99()
DoCmd.SetWarnings False
cad1 = "SELECT * into aux FROM nomval WHERE (nomval.cifra)=" & partent
DoCmd.RunSQL (cad1)
Set rsa = dbs.OpenRecordset("aux")
If rsa.RecordCount > 0 Then
iletras = RTrim(iletras) & " " & rsa.Fields("spanish")
End If
sigue = False
rsa.Close
End Sub
Private Sub proc101999()
DoCmd.SetWarnings False
part1 = Int(Left(CStr(partent), 1) & "00")
partent = Int(Right(CStr(partent), 2))
If part1 = 100 Then
iletras = RTrim(iletras) & " " & "CIENTO"
Else
cad1 = "SELECT * into aux FROM nomval WHERE (nomval.cifra)=" & part1
DoCmd.RunSQL (cad1)
Set rsa = dbs.OpenRecordset("aux")
If rsa.RecordCount > 0 Then
iletras = RTrim(iletras) & " " & rsa.Fields("spanish") & " "
End If
rsa.Close
End If
End Sub
Private Sub proc100000()
DoCmd.SetWarnings False
tam = Len(CStr(partent))
Select Case tam
Case Is = 4
part1 = Int(Left(CStr(partent), 1))
Case Is = 5
part1 = Int(Left(CStr(partent), 2))
Case Is = 6
part1 = Int(Left(CStr(partent), 3))
End Select
partent = Int(Right(CStr(partent), 3))
If part1 = 1 Then
iletras = RTrim(iletras) & " " & "MIL"
Else
cad1 = "SELECT * into aux FROM nomval WHERE (nomval.cifra)=" & part1
DoCmd.RunSQL (cad1)
Set rsa = dbs.OpenRecordset("aux")
If rsa.RecordCount > 0 Then
iletras = RTrim(iletras) & " " & rsa.Fields("spanish") & " " & "MIL"
End If
rsa.Close
End If
End Sub
Private Sub procmillon()
DoCmd.SetWarnings False
part1 = Int(Left(CStr(partent), 1) & "00")
part2 = Int(Mid(CStr(partent), 2, 2))
partent = Int(Right(CStr(partent), 3))
If part1 = 100 Then
iletras = RTrim(iletras) & " " & "CIENTO"
Else
cad1 = "SELECT * into aux FROM nomval WHERE (nomval.cifra)=" & part1
DoCmd.RunSQL (cad1)
Set rsa = dbs.OpenRecordset("aux")
If rsa.RecordCount > 0 Then
iletras = RTrim(iletras) & " " & rsa.Fields("spanish")
End If
rsa.Close
End If
cad2 = "SELECT * into aux FROM nomval WHERE (nomval.cifra)=" & part2
DoCmd.RunSQL (cad2)
Set rsa = dbs.OpenRecordset("aux")
If rsa.RecordCount > 0 Then
iletras = RTrim(iletras) & " " & rsa.Fields("spanish") & " " & "MIL"
End If
rsa.Close
End Sub
Private Sub procmasmillon()
DoCmd.SetWarnings False
part1 = Int(Left(CStr(partent), 1))
partent = Int(Right(CStr(partent), 6))
If part1 = 1 Then
iletras = RTrim(iletras) & " " & " UN MILLON"
Else
cad2 = "SELECT * into aux FROM nomval WHERE (nomval.cifra)=" & part1
DoCmd.RunSQL (cad2)
Set rsa = dbs.OpenRecordset("aux")
If rsa.RecordCount > 0 Then
iletras = RTrim(iletras) & " " & rsa.Fields("spanish") & " " & "MILLONES"
End If
rsa.Close
End If
End Sub
Private Sub menudo()
DoCmd.SetWarnings False
If qmenudo > 9 Then
iletras = RTrim(iletras) + " con " + Left(Str(qmenudo), 3) + "/100"
Else
If qmenudo = 0 Then
iletras = RTrim(iletras) + " con 00/100"
Else
iletras = RTrim(iletras) + " con " + Left(Str(qmenudo), 2) + "/100"
End If
End If
End Sub