Visual Basic - Sincronizar combo

Life is soft - evento anual de software empresarial
 
Vista:

Sincronizar combo

Publicado por Adrian (59 intervenciones) el 21/10/2002 21:46:09
Estoy usando el combo box para realizar la visualizacion de un determinado registro, lo hace bien, pero cuando esta con la propiedad sort, no trabaja bien, me da un registro diferente al que pido, sin la propiedad sort, si lo realiza correctamente. ¿como puedo hacer para sincronizar el combo y los registros con la propiedad sort activa?. Me dicen que use ORDER BY pero no se como usarla. Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Order By

Publicado por J2ML (464 intervenciones) el 22/10/2002 16:02:37
1.- En realidad si te aconsejaron bien. Cuando tu activas la propiedad SORT de un combo el ordena los datos que contiene de forma alfabética. Pero eso de ninguna manera afecta la forma como tu los leas de la base de datos (Es decir pierdes la concordancia con el orden de los registros de la base de datos).
2.- cuando crees tu recordset:
en DAO:
dim db as dao.database
dim rst as dao.recordset
Set cnn = New dao.database
Set rst = New dao.Recordset
'Asumiendo que tu base de datos este en el directorio de la aplicación
' 'y sea de access 97 => DAO 3.5 acces 2000 => DAO 3.6
set db=opendatabase(app.path+"\db1.mdb")
Set rst = db.opendatabase("Select * from [TABLE1] order by [campo1] asc")

en ADO:
dim cnn as adodb.connection
dim rst as adodb.recordset
Set cnn = New adodb.Connection
Set rst = New adodb.Recordset
'Asumiendo que tu base de datos sea Acces 2000.
cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + App.Path + "\db1.mdb;Persist Security Info=False"
cnn.Open
rst.CursorLocation = adUseClient
rst.Open "Select * from [TABLE1] order by [campo1] asc", cnn

- Si en el Select omites asc tabla será ordenada ascendente por el campo1. (Es el valor por defecto).

- Si en el Select sustituyes asc por desc la tabla será ordenada descendente por ese campo1.

Luego con un:
rst.movefirst
while not rst.eof
combo1.additem rst.fields("campo1")
rst.movenext
wend
rellenas el combo con el campo que deseas, con el orden que deseas..!
Site sirvió hazlo saber..!

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar