Concatenear Datos

Quisiera que me ayudaras en un problema de access.
Tengo una base de Datos para realizar las ordenas de Salidas de un personal (Comisiones) Consta de tres tablas ( Una Los Empleados, Otra las Actividades y la Tabla de Enlace que Une las Dos anteriores las Preguntas son las Siguiente:
1. Quiero que en un informe me salga todas las actividades programadas en el mes en un solo control o cuatro de texto ej. (Control Dengue, Visita PI, Rociado).
2. La otra es que en otro informe quiero que me salga las actividades en columnas, el empleado en la fila en campo días en las diferentes actividades, Me explico mejor lo que quiero es un informe tipo Excel, las columnas que las actividades, las filas el empleado, el campo de intercepción los días en que va a realizar las actividades. Ya lo ensaye en una consulta de referencias cruzadas, pero el campo Días es texto.
3. Si una opción de convertir un numero en letras, ($12.000 docemil pesos)
Te agradecería mucho mi me puedes ayudar, lo que pasa es que soy nuevo en esta rama, y perdona tantas preguntas, lo que pasa que en el putumayo, colombia es un poco difícil acceder a internet.

1 Respuesta

Respuesta
1
Dando respuesta a tus inquietudes:
Para el punto 1 y 2, lo que debes de hacer es crear una consulta con todas las tablas que necesites y agregaslos campos deseadosy criterios paratraerlos datos requeridos. Una vez te funcione bien la consulta, creas el informe proveniente de esa consulta. Osea, creas 2 consultas para los 2 informes que necesitas.
Para el punto 3:
Este código lo pegas en un nuevo modulo:
Public Function NumerosConComaALetras(ByVal NumberStr As String) As String
Dim nTemp
nTemp = nTemp = InStr(NumberStr, ".")
If nTemp = 0 Then
NumerosConComaALetras = NumerosALetras(NumberStr, False)
Else
NumerosConComaALetras = NumerosALetras(Left(NumberStr, nTemp - 1), False) & " coma " & _
NumerosALetras(Mid(NumberStr, nTemp + 1), False)
End If
End Function
Public Function NumerosEurosALetras(ByVal NumberStr As String, Optional lFemenino = False, Optional cMoneda = "euro", Optional cCentimos = "céntimo") As String
Dim nTemp, nDecimales
nTemp = InStr(NumberStr, ",")
If nTemp = 0 Then
NumerosEurosALetras = NumerosALetras(NumberStr, lFemenino, cMoneda)
Else
nDecimales = Len(Mid(NumberStr, nTemp + 1))
Select Case nDecimales
Case 0
NumerosEurosALetras = NumerosALetras(NumberStr, lFemenino, cMoneda)
Case 1, 2 'centimos'
If nDecimales = 1 Then
NumberStr = NumberStr & "0"
End If
NumerosEurosALetras = NumerosALetras(Left(NumberStr, nTemp - 1), lFemenino, cMoneda) & " con" & _
NumerosALetras(Mid(NumberStr, nTemp + 1), lFemenino, cCentimos)
Case Else
NumerosEurosALetras = NumerosALetras(Left(NumberStr, nTemp - 1), False) & " coma " & _
NumerosALetras(Mid(NumberStr, nTemp + 1), False) & " " & cMoneda & _
IIf(InStr("aeio", Right(cMoneda, 1)) = 0, "e", "") & "s"
End Select
End If
End Function
Public Function NumerosALetras(ByVal NumberStr As String, Optional lFemenino = True, Optional cMoneda = "") As String
Dim z As String, x As String, Temp As String, c As String
Dim a As Integer, b As Integer, i As Integer
Dim iPos As Integer
Dim data(9, 3) As String
data(0, 0) = "uno"
data(1, 0) = "dos"
data(2, 0) = "tres"
data(3, 0) = "cuatro"
data(4, 0) = "cinco"
data(5, 0) = "seis"
data(6, 0) = "siete"
data(7, 0) = "ocho"
data(8, 0) = "nueve"
data(9, 0) = "diez"
data(0, 1) = "cien"
data(1, 1) = "diez"
data(2, 1) = "veinte"
data(3, 1) = "treinta"
data(4, 1) = "cuarenta"
data(5, 1) = "cincuenta"
data(6, 1) = "sesenta"
data(7, 1) = "setenta"
data(8, 1) = "ochenta"
data(9, 1) = "noventa"
data(0, 3) = "diez"
data(1, 3) = "once"
data(2, 3) = "doce"
data(3, 3) = "trece"
data(4, 3) = "catorce"
data(5, 3) = "quince"
data(6, 3) = "dieciséis"
data(7, 3) = "diecisiete"
data(8, 3) = "dieciocho"
data(9, 3) = "diecinueve"
'remove redundant spaces
'NumberStr = Trim( Replace(NumberStr, ",", ""))
NumberStr = Trim(NumberStr)
a = Len(NumberStr)
Temp = NumberStr
If Val(NumberStr) = 0 Then
NumerosALetras = "cero"
Exit Function
End If
'get rid of any decimals
iPos = iPos = InStr(Temp, ".")
If iPos > 0 Then Temp = Left(Temp, iPos - 1)
While ((a Mod 3) <> 0)
Temp = "0" & Temp
a = Len(Temp)
Wend
NumberStr = Temp
For i = a - 2 To 1 Step -3
b = b + 1
Temp = Mid(NumberStr, i, 3)
z = ""
' "Intelligent" routines
'------------------------
If Temp <> "000" Then
If Temp = "100" Then
z = "cien"
Else
c = Left(Temp, 1)
If c <> "0" Then
If c = "1" Then
z = "ciento"
ElseIf c = "5" Then
z = " quinientos"
ElseIf c = "7" Then
z = " setecientos"
ElseIf c = "9" Then
z = " novecientos"
Else
z = " " & data(Val(c) - 1, 0) & "cientos"
End If
End If
c = Mid(Temp, 2, 1)
If c <> "0" Then
If c <> "1" Then
z = z & " " & data(Val(c), 1)
Else
z = z & " " & data(Val(Right(Temp, 2)) - 10, 3)
End If
End If
End If
If Right(Temp, 1) <> "0" And Mid(Temp, 2, 1) <> "1" Then
z = z & IIf(z = "", "", " y ") & data(Val(Right(Temp, 1)) - 1, 0)
End If
End If
'------------------------
If z <> "" Then
Select Case b
Case 1:
x = z
Case 2:
If z = "uno" Then
x = "mil" & x
Else
x = z & " mil" & x
End If
Case 3:
If z = "uno" Then
x = "un millón " & x
Else
x = z & " millones " & x
End If
Case 4:
If z = "uno" Then
x = "mil millones " & x
Else
x = z & " mil millones " & x
End If
Case 5:
If z = "uno" Then
x = "un billón " & x
Else
x = z & " billones " & x
End If
Case Else:
Exit Function
End Select
End If
Next
'correción de genero
If x = "uno" Then
x = IIf(lFemenino, "una", "un")
ElseIf Right(x, 3) = "uno" Then
x = Mid(x, 1, Len(x) - 3) & IIf(lFemenino, "una", IIf(cMoneda = "", "uno", "un"))
ElseIf Right(x, 3) = "tos" And lFemenino Then
x = Mid(x, 1, Len(x) - 3) & "tas"
End If
If cMoneda <> "" Then
x = x & " " & IIf(Val(NumberStr) <= 1, cMoneda, cMoneda & IIf(InStr("aeio", Right(cMoneda, 1)) = 0, "e", "") & "s")
End If
NumerosALetras = x
End Function
Ya ensaye en consultas y no me Funciono o no me esplique.
1. Quiero que en un informe me salga todas las actividades programadas en el mes en un solo control o cuatro de texto, Lo que pasa es que las activlidas se encuentran en una tabla
Ejemplo de tabla
Cod. Actividas
1 dengue
2 Control PI
3 Destrucción de Criaderos
Lo que quiero que las anteriores actividades se encuentren en un control
Actividades: Dengue, Control PI, Destrucción de Criaderos
2. La otra es que en otro informe quiero que me salga las actividades en columnas, el empleado en la fila en campo días en las diferentes actividades, Me explico mejor lo que quiero es un informe tipo Excel, las columnas que las actividades, las filas el empleado, el campo de intercepción los días en que va a realizar las actividades. Ya lo ensaye en una consulta de referencias cruzadas, pero el campo Días es texto.
Ejemplo
Empleado dengue visita pi
ffff 1 A 15 16 A 30
zzzz 5 A 10 11 A 15
1 A 15 : Son los días que tiene que permanecer en esa actividad.
Debes de pasar el campo días a numérico. Para el informes, debes de crear un cuadro combinado y con el asistente que te ofrece, buscas las tablas y agregas los campos deseados y te aparecerán en ese cuadro de control todos los campos que seleccionaste.
Si tienes instalado la bd llamada Neptuno o pedidos, ppodras ver y copiar un ejemplo del informe que quieres en columnas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas