Desconocido
|
| Enviado - 21/10/2004 |
| |
Hola!!!
tengo un problema con el tamaño,...
vamos a ver. yo tengo una funcion (wenu, me la pasaron) que lo que hace, entre otras cosas, es mirar el tipo de dato que voy a meter en el list y le da un tamaño determinado. la verdad es que me ha funcionado mu bien hasta ahora. pero he cambiado la base de datos de acces a phpMyAdmin y ya no me funciona... alguien sabria explicarme el pq y darme una solucion...
y ya puestos... el phpMyAdmin 2.5.4 no me deja ejecutar consultas encadenadas, pq??
Muchisimas gracias por adelantado.
Adjunto la funcion:
'funcion que rellena el list segun la sentencia sql que le mande
Public Function setLstDB(SQL As String, connection As String, lstDB As ListView, Form As Form)
Screen.MousePointer = vbHourglass
Set base = New ADODB.connection
base.connectionString = connectionString
base.Open
Set tabla = New ADODB.Recordset
If (SQL = "") Then
MsgBox ("Error interno del programa")
End If
' tabla.Open SQL, base, adOpenStatic, adLockReadOnly, adCmdText
tabla.Open SQL, base
Dim X As ListItem
'Limpiamos el contenido del listview
lstDB.ListItems.Clear
'Y preparamos los campos que mostraremos
lstDB.ColumnHeaders.Clear
Dim a As Integer
Dim t As Integer
'El primer campo no lo mostramos, es el "tag"
For a = 1 To tabla.Fields.Count - 1
'Calculamos el tamaño del campo
Select Case tabla.Fields(a).Type
Case adVarWChar:
If tabla.Fields(a).DefinedSize > Len(tabla.Fields(a).Name) Then
t = tabla.Fields(a).DefinedSize
Else
t = Len(tabla.Fields(a).Name)
End If
Case adInteger: t = 5
Case Else: t = 10
End Select
t = t * 120 + 100
lstDB.ColumnHeaders.Add a, , tabla.Fields(a).Name, t
Next a
t = 0
For a = 1 To lstDB.ColumnHeaders.Count
t = t + lstDB.ColumnHeaders(a).Width
Next a
If t >= Form.Width Then
'Me.Width = Me.Width + (t - Me.Width) + 630
Form.Width = Form.Width + (t - Form.Width) + 1250
Form.Line1.X1 = 0
Form.Line1.X2 = Form.Width
lstDB.Width = t + 330
End If
If tabla.EOF <> True Then
While Not tabla.EOF
'Para crear una lista, debemos insertar a mano el primer elemento
Set X = lstDB.ListItems.Add(, , tabla.Fields(1).Value)
'La clave primaria la guardamos en el tag
X.Tag = tabla.Fields(0).Value
For a = 2 To tabla.Fields.Count - 1
X.SubItems(a - 1) = tabla.Fields(a).Value
Next a
tabla.MoveNext
Wend
lstDB.ListItems(1).Selected = True
End If
tabla.Close
base.Close
Screen.MousePointer = vbDefault
End Function
|
| |
|