• Viernes 8 de Noviembre de 2024, 16:02

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - josemns

Páginas: [1]
1
Visual Basic 6.0 e inferiores / Data Combo
« en: Sábado 29 de Marzo de 2008, 20:28 »
Amigos como hago para poder cerrar la conexion del recordset que uso en el DataCombo y que los datos sigan en pantalla. Por que si cierro el recordset los datos del combo salen en blanco mi codigo de ejemplo esta abajo


Private Sub CargarFormaPago()

On Error GoTo error1

 Dim rs As New ADODB.Recordset
 sql = "": sql = "Select * from FORMAPAGO order by IDFORMA"
 rs.Open sql, DBConexion, adOpenStatic
 
 Set cboFormaPago.RowSource = rs
 Set cboFormaPago.DataSource = rs
 cboFormaPago.ListField = rs.Fields("DESCRIPCION").Name
 cboFormaPago.BoundColumn = rs.Fields("IDFORMA").Name

 rs.close --> esto no puedo poner porque ya no me salen los datos

Exit Sub

error1:
 MsgBox "Error: " & Err.Description, vbCritical + vbOKOnly, "Mensaje del Sistema"

End Sub

2
Hola Gracias por responder, pero ya encontre el problema. Estaba dejando los recordsets abiertos, y access no me acepta que deje abierto los RS pero SQL Server 2000 si me deja. Cosa que es un problema cuando utilizo el DataCombo por que se necesita dejar abiero el recordset para mostrar los datos

3
Visual Basic 6.0 e inferiores / Pregunta Transacciones Con Visual 6.0 Y Access
« en: Sábado 22 de Marzo de 2008, 06:47 »
Hola amigos.
Estoy haciendo un programa de ventas y tengo problemas con las transacciones,
antes este programa funcionaba con SQL Server 2000 y lo hacia muy bien con transacciones, pero ahora que lo quiero cambiar para que trabaje con Access me sale un error cada vez que toca la línea de código BaseVentas.BeginTrans y me sale este error

Error '-2147467259 (80004005)' en tiempo de ejecución:
[Microsoft][Controlador ODBC ;Microsoft Access]No se puede definir el atributo ahora

Estoy trabajando con este driver para Access:

cadena_DNS = "Driver={Microsoft Access Driver (*.mdb)};Dbq=" & App.Path & "\" & Nombre_Base & ".mdb;Uid=Admin;Pwd=" & Clave & ";"

y También estoy trabajando con ADO y la versión de la referencia de ADO es:

Microsoft ActiveX Data Object 2.0 Library

lo peor es que el programa tiene diez pantallas y en todos falla menos en uno y no entiendo por que? solo en uno funciona bien.

De antemano gracias a la persona que me pueda ayudar

4
Visual Basic 6.0 e inferiores / Esconder Columna En Un Grid
« en: Sábado 23 de Diciembre de 2006, 21:49 »
Como hago para esconder una columna en un MsFlexgrid y en un MshFlexgrid??? Sin tener que ponerle el ancho de columna a Cero
Gracias por la ayuda

5
Visual Basic 6.0 e inferiores / Re: Transacciones
« en: Martes 19 de Diciembre de 2006, 02:05 »
Mira Puedes usar el metodo que yo uso con ADO bajo VB6
Primero tienes que importar las referencias ActiveX Data Object 2.6 o alguna otra yo uso esa

despues haces la conexion y lo pones en General o si la vas a usarla en todo el programa te sugiero en un modulo asi

Dim cn as new ADO.connection
cn.open "DSN=BASE" --> Yo uso siempre una conexion X medio del ODBC de Windows

Luego ubicas el bloque de codigo que va a contener un SQL ya sea Insert, Update o delete como por ejemplo:

Private sub Ingresar()

 On error goto Linea_Error

 Dim sql
 cn.BeginTransac --> no c si esta bien escrito, pero VB deberia mostrarte la lista procedimentos y metodos que dispone el objeto

 sql = "Insert into TABLA values ("01","CArlos")"
 cn.Execute(SQL)
 sql = "Insert into TABLA values ("02","Pedro")"
 cn.Execute(SQL)
 
 msgbox "Ingreso Completado"
 cn.CommitTransac --> Esto hace si todo salio bien

 Exit sub

 Linea_Error:
 msgbox "Error en el Ingreso"
 cn.RollBackTransac --> Si algo salio mal en la base no se inserta nada asi alla pasado por el primer Insert

end sub

Recuerda siempre lo siguiente:
1) Una transaccion debe cumplir con las propiedades ACID (Atomicidad, consistencia, Aislamiento y durabilidad)
2) Siempre que inicies una transaccion (BeginTransac) siempre debe terminar con (CommitTransac) o un (RollBackTransac) no mas no menos, siempre se ponen los tres
3) No puedes Iniciar una Transaccion en un procedimiento y terminarla en otro procedimiento o funcion debe ser en el mismo bloque de codigo si deseas abacar mas codigo inicias otra transaccion

Espero te sirvan esto consejos
Ojo: El codigo me lo invente en el momento
Cahuuuuuuu

Páginas: [1]