Crear una función pública de tipo 'Memo

16/05/2017 - 09:24 por Toni Miralles | Informe spam
Buenos días,

Tengo una función cómo la que sigue:


'Public Function sMem(iIdExp As Integer) As String'


En la que encadeno varias lineas de texto.

El problema és que esta cadena de tipo 'String sólo encadena los 255 primeros caràcteres, pero no se cómo definir la función cómo tipo Memo o Texto Largo.

Gracias.

Preguntas similare

Leer las respuestas

#1 Emilio
16/05/2017 - 18:56 | Informe spam
-
¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
-
Hola!
es poco probable que puedas sobrecargar una variable string, así que es muy
posible que el problema esté en el contenido de la función, pero como no nos
la enseñas, mal podremos saberlo.

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio

"Toni Miralles" escribió en el mensaje de
noticias:

Buenos días,

Tengo una función cómo la que sigue:


'Public Function sMem(iIdExp As Integer) As String'


En la que encadeno varias lineas de texto.

El problema és que esta cadena de tipo 'String sólo encadena los 255
primeros caràcteres, pero no se cómo definir la función cómo tipo Memo o
Texto Largo.

Gracias.
Respuesta Responder a este mensaje
#2 Toni Miralles
17/05/2017 - 09:17 | Informe spam
Buenos días,

Gràcias por a rápida respuesta. Aquí te dejo la función entera, se trata de un Recordset que encadena varios campos de una tabla:

Public Function sMemo(iIdExp As Integer) As String

Dim sSQL As String
Dim rst1 As Recordset

sSQL = "SELECT Historic.IdExpHist, Historic.DataHist, Historic.DescrHist, Historic.ObsHist FROM Historic WHERE (((Historic.IdExpHist)= " & iIdExp & "))"

Set rst1 = CurrentDb.OpenRecordset(sSQL)

If rst1.RecordCount = 0 Then
rst1.Close
Set rst1 = Nothing
Exit Function
End If

rst1.MoveLast

If rst1.RecordCount = 0 Then
sMemo = ""
Exit Function
End If

rst1.MoveLast
rst1.MoveFirst

rst1.Sort = rst1.Fields(2)

Do While Not rst1.EOF

If sMemo = "" Then
Else
sMemo = sMemo & " "
End If

sMemo = sMemo & "#" & rst1.Fields(1) & "# -" & rst1.Fields(2) & ". " & rst1.Fields(3) & "-"

rst1.MoveNext

Loop

rst1.Close
Set rst1 = Nothing

End Function




El dimarts, 16 maig de 2017 18:56:45 UTC+2, Emilio va escriure:
-
¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
-
Hola!
es poco probable que puedas sobrecargar una variable string, así que es muy
posible que el problema esté en el contenido de la función, pero como no nos
la enseñas, mal podremos saberlo.

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio

"Toni Miralles" escribió en el mensaje de
noticias:

Buenos días,

Tengo una función cómo la que sigue:


'Public Function sMem(iIdExp As Integer) As String'


En la que encadeno varias lineas de texto.

El problema és que esta cadena de tipo 'String sólo encadena los 255
primeros caràcteres, pero no se cómo definir la función cómo tipo Memo o
Texto Largo.

Gracias.
Respuesta Responder a este mensaje
#3 Emilio
17/05/2017 - 19:05 | Informe spam
-
¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
-
Hola!
pues a simple vista no veo nada anormal, ¿de que manera verificas que solo
alcanza los 255 caracteres, yo he metido enormes ficheros en una variable
string sin ningún problema,si que es cierto que si esa variable la asignas a
un campo de texto que tenga formato solo mostrará 255 caracteres.
Ejecuta paso a paso y revisa en que momento y porque casca.

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio

"Toni Miralles" escribió en el mensaje de
noticias:

Buenos días,

Gràcias por a rápida respuesta. Aquí te dejo la función entera, se trata de
un Recordset que encadena varios campos de una tabla:

Public Function sMemo(iIdExp As Integer) As String

Dim sSQL As String
Dim rst1 As Recordset

sSQL = "SELECT Historic.IdExpHist, Historic.DataHist,
Historic.DescrHist, Historic.ObsHist FROM Historic WHERE
(((Historic.IdExpHist)= " & iIdExp & "))"

Set rst1 = CurrentDb.OpenRecordset(sSQL)

If rst1.RecordCount = 0 Then
rst1.Close
Set rst1 = Nothing
Exit Function
End If

rst1.MoveLast

If rst1.RecordCount = 0 Then
sMemo = ""
Exit Function
End If

rst1.MoveLast
rst1.MoveFirst

rst1.Sort = rst1.Fields(2)

Do While Not rst1.EOF

If sMemo = "" Then
Else
sMemo = sMemo & " "
End If

sMemo = sMemo & "#" & rst1.Fields(1) & "# -" & rst1.Fields(2) & ". "
& rst1.Fields(3) & "-"

rst1.MoveNext

Loop

rst1.Close
Set rst1 = Nothing

End Function




El dimarts, 16 maig de 2017 18:56:45 UTC+2, Emilio va escriure:
-
¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
-
Hola!
es poco probable que puedas sobrecargar una variable string, así que es
muy
posible que el problema esté en el contenido de la función, pero como no
nos
la enseñas, mal podremos saberlo.

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio

"Toni Miralles" escribió en el mensaje de
noticias:

Buenos días,

Tengo una función cómo la que sigue:


'Public Function sMem(iIdExp As Integer) As String'


En la que encadeno varias lineas de texto.

El problema és que esta cadena de tipo 'String sólo encadena los 255
primeros caràcteres, pero no se cómo definir la función cómo tipo Memo o
Texto Largo.

Gracias.
Respuesta Responder a este mensaje
#4 Toni Miralles
18/05/2017 - 14:46 | Informe spam
Gracias, Emilio.

Cómo debo hacer para asignar a la variable un campo de texto sin formato? Ahora mismo el campo lo tengo definido en una consulta como sigue:

sMemo([C00_Expedients_Vigents].[IDExp]) AS Observaciones

Como puedo modificar este campo para que devuelva cadenes de más de 255 caracteres?

Gracias



El dimecres, 17 maig de 2017 19:05:25 UTC+2, Emilio va escriure:
-
¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
-
Hola!
pues a simple vista no veo nada anormal, ¿de que manera verificas que solo
alcanza los 255 caracteres, yo he metido enormes ficheros en una variable
string sin ningún problema,si que es cierto que si esa variable la asignas a
un campo de texto que tenga formato solo mostrará 255 caracteres.
Ejecuta paso a paso y revisa en que momento y porque casca.

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio

"Toni Miralles" escribió en el mensaje de
noticias:

Buenos días,

Gràcias por a rápida respuesta. Aquí te dejo la función entera, se trata de
un Recordset que encadena varios campos de una tabla:

Public Function sMemo(iIdExp As Integer) As String

Dim sSQL As String
Dim rst1 As Recordset

sSQL = "SELECT Historic.IdExpHist, Historic.DataHist,
Historic.DescrHist, Historic.ObsHist FROM Historic WHERE
(((Historic.IdExpHist)= " & iIdExp & "))"

Set rst1 = CurrentDb.OpenRecordset(sSQL)

If rst1.RecordCount = 0 Then
rst1.Close
Set rst1 = Nothing
Exit Function
End If

rst1.MoveLast

If rst1.RecordCount = 0 Then
sMemo = ""
Exit Function
End If

rst1.MoveLast
rst1.MoveFirst

rst1.Sort = rst1.Fields(2)

Do While Not rst1.EOF

If sMemo = "" Then
Else
sMemo = sMemo & " "
End If

sMemo = sMemo & "#" & rst1.Fields(1) & "# -" & rst1.Fields(2) & ". "
& rst1.Fields(3) & "-"

rst1.MoveNext

Loop

rst1.Close
Set rst1 = Nothing

End Function




El dimarts, 16 maig de 2017 18:56:45 UTC+2, Emilio va escriure:
> -
> ¡Importante!: Colabora con el grupo.Contesta a este mensaje
> y dinos si te sirvió o no la respuesta dada. Muchas gracias
> -
> Hola!
> es poco probable que puedas sobrecargar una variable string, así que es
> muy
> posible que el problema esté en el contenido de la función, pero como no
> nos
> la enseñas, mal podremos saberlo.
>
> Saludos a todos desde Huelva
>
> Emilio [MS-MVP Access 2006/11]
> http://www.mvp-access.com/foro
> http://www.mvp-access.es/emilio
>
> "Toni Miralles" escribió en el mensaje de
> noticias:
>
> Buenos días,
>
> Tengo una función cómo la que sigue:
>
>
> 'Public Function sMem(iIdExp As Integer) As String'
>
>
> En la que encadeno varias lineas de texto.
>
> El problema és que esta cadena de tipo 'String sólo encadena los 255
> primeros caràcteres, pero no se cómo definir la función cómo tipo Memo o
> Texto Largo.
>
> Gracias.
Respuesta Responder a este mensaje
#5 Emilio
18/05/2017 - 18:59 | Informe spam
-
¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
-
Hola!

Perdón, donde dije campo de texto debería haber dicho cuadro de texto, por
supuesto de un formulario.
Reitero lo dicho ¿has analizado el proceso paso a paso?

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio
"Toni Miralles" escribió en el mensaje de
noticias:

Gracias, Emilio.

Cómo debo hacer para asignar a la variable un campo de texto sin formato?
Ahora mismo el campo lo tengo definido en una consulta como sigue:

sMemo([C00_Expedients_Vigents].[IDExp]) AS Observaciones

Como puedo modificar este campo para que devuelva cadenes de más de 255
caracteres?

Gracias



El dimecres, 17 maig de 2017 19:05:25 UTC+2, Emilio va escriure:
-
¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias
-
Hola!
pues a simple vista no veo nada anormal, ¿de que manera verificas que solo
alcanza los 255 caracteres, yo he metido enormes ficheros en una variable
string sin ningún problema,si que es cierto que si esa variable la asignas
a
un campo de texto que tenga formato solo mostrará 255 caracteres.
Ejecuta paso a paso y revisa en que momento y porque casca.

Saludos a todos desde Huelva

Emilio [MS-MVP Access 2006/11]
http://www.mvp-access.com/foro
http://www.mvp-access.es/emilio

"Toni Miralles" escribió en el mensaje de
noticias:

Buenos días,

Gràcias por a rápida respuesta. Aquí te dejo la función entera, se trata
de
un Recordset que encadena varios campos de una tabla:

Public Function sMemo(iIdExp As Integer) As String

Dim sSQL As String
Dim rst1 As Recordset

sSQL = "SELECT Historic.IdExpHist, Historic.DataHist,
Historic.DescrHist, Historic.ObsHist FROM Historic WHERE
(((Historic.IdExpHist)= " & iIdExp & "))"

Set rst1 = CurrentDb.OpenRecordset(sSQL)

If rst1.RecordCount = 0 Then
rst1.Close
Set rst1 = Nothing
Exit Function
End If

rst1.MoveLast

If rst1.RecordCount = 0 Then
sMemo = ""
Exit Function
End If

rst1.MoveLast
rst1.MoveFirst

rst1.Sort = rst1.Fields(2)

Do While Not rst1.EOF

If sMemo = "" Then
Else
sMemo = sMemo & " "
End If

sMemo = sMemo & "#" & rst1.Fields(1) & "# -" & rst1.Fields(2) & ".
"
& rst1.Fields(3) & "-"

rst1.MoveNext

Loop

rst1.Close
Set rst1 = Nothing

End Function




El dimarts, 16 maig de 2017 18:56:45 UTC+2, Emilio va escriure:
> -
> ¡Importante!: Colabora con el grupo.Contesta a este mensaje
> y dinos si te sirvió o no la respuesta dada. Muchas gracias
> -
> Hola!
> es poco probable que puedas sobrecargar una variable string, así que es
> muy
> posible que el problema esté en el contenido de la función, pero como no
> nos
> la enseñas, mal podremos saberlo.
>
> Saludos a todos desde Huelva
>
> Emilio [MS-MVP Access 2006/11]
> http://www.mvp-access.com/foro
> http://www.mvp-access.es/emilio
>
> "Toni Miralles" escribió en el mensaje de
> noticias:
>
> Buenos días,
>
> Tengo una función cómo la que sigue:
>
>
> 'Public Function sMem(iIdExp As Integer) As String'
>
>
> En la que encadeno varias lineas de texto.
>
> El problema és que esta cadena de tipo 'String sólo encadena los 255
> primeros caràcteres, pero no se cómo definir la función cómo tipo Memo o
> Texto Largo.
>
> Gracias.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida