Visual Basic - Ayuda con progress bar

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda con progress bar

Publicado por Andrés Barcia (4 intervenciones) el 29/09/2006 16:26:01
Hola, que tal. tengo la siguiente duda:

quiero agregar una barra de progreso que vaya junto con el porcentaje completado de una connection.execute(stringSQL)
traté de usar doevents pero mientras está ejecutando la consulta no sucede nada, solo recien de terminar de ejecutar la consulta pasa a la siguiente instrucción, si alguien sabe como hacer que mientras esté ejecutando la consulta, el programa haga otras cosas, le agradezco profundamente su ayuda.
adjunto un ejemplo de como ejecuto la consulta

Public Function RestaurarCopiadeSeguridad(ByVal rutaArchivo As String) As Boolean
' estoy usando la base hoteles que es de prueba
On Error GoTo handle
Dim ssql As String
ssql = "IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'Hoteles') DROP DATABASE [Hoteles] RESTORE DATABASE Hoteles FROM DISK ='" & rutaArchivo & "' With STATS = 10"

If conectar2 Then
If cn.State = adStateOpen Then
cn.Close
End If
cn2.Execute (ssql)
'acá iría algo como doevents?
cn2.Close
cn.Open
RestaurarCopiadeSeguridad = True
End If
Exit Function

handle:
MsgBox Err.Description
RestaurarCopiadeSeguridad = False

End Function
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

RE:Ayuda con progress bar

Publicado por Anita (5 intervenciones) el 30/09/2006 00:34:05
El contro, porgressbar nesecita un inicio y un fin si no le das del fin os no responde si qeres haser los k queres no lo hagais con una sentencua sql sino con un for o while que lea todos los registros de la tabla que keres astualizar o leer, claro k previamente le tenes k desir los registros k tenes en la tabla. eso se hase con la propiedad recorcount del recordset.
si nos quedo claro pos no lo decis k aqui nos dedicamos a lludar a los k no saben
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

RE:Ayuda con progress bar

Publicado por Andrés Barcia (4 intervenciones) el 30/09/2006 05:54:02
hola, entiendo lo que decís y me sacaste parte de la duda. el problema es que la sentencia sql que estoy usando no toma ni actualiza registros de la base de datos sino que crea un archivo .bak (de recuperacion de base de datos), es decir, no puedo usar un bucle (o al menos no sé como) con esa sentencia porque estaría repitiendo el backup muchas veces.
Disculpame si estoy equivocado!! muchas gracias por la respuesta, en parte me ayudó porque no conozco el control.

Otra forma de describir mi problema sería:

ejecuto una sentencia sql que le dice al servidor que cree un backup de una determinada base de datos y hasta que el servidor no termina de crear el archivo, mi programa no responde, probé poniendo un timer que sumaba números en un label y cuando se ejecuta la consulta, el label no cambia hasta que el servidor termina de crear el archivo .bak

Gracias por tu respuestaaaaaaa!!!!!

Andrés
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

RE:Ayuda con progress bar

Publicado por Anita (5 intervenciones) el 30/09/2006 19:39:18
Bueno, creo que en ese caso, lo mas apropiado sería poner una instrucción " Screen.MousePointer = vbHourglass" (reloj de arena) al abrir la sentencia sql y " Screen.MousePointer = vbDefault" al finalizar.
Pero si lo que quieres poner es un control ProgessBar a pesar de todo, también lo podeis hacer sumando todos los registros de las tablas de la BD, ése sería el valor máximo del ProgressBar.
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

RE:Ayuda con progress bar

Publicado por Andrés Barcia (4 intervenciones) el 01/10/2006 03:05:06
Ok, me sirvió eso del puntero pues no se me había ocurrido y no sabía hacerlo tampoco. muchas gracias por tu ayuda!!!!
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