El Guru Programador
Usuario DESCONOCIDO | Registrate Gratis | Usuarios Registrados
Foro de Visual Basic/VB.NET
Foros del Guru > Visual Basic/VB.NET
Usuario Desafio ListView (urgente!!) graci...
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
 
fmarredo
486 Mensaje(s)
Enviado - 21/10/2004
 
En donde dice:
base.connectionString = connectionString me parece que debería decir:
base.connectionString = connection
 
 

 

Contactos myStudio Network