• Sábado 21 de Diciembre de 2024, 11:17

Autor Tema:  como puedo hacer la conexion de vb kon el sql en modulo ?  (Leído 3858 veces)

marcela1513

  • Nuevo Miembro
  • *
  • Mensajes: 15
  • Nacionalidad: cl
    • Ver Perfil
como puedo hacer la conexion de vb kon el sql en modulo ?
« en: Miércoles 22 de Diciembre de 2010, 20:46 »
0
wuenas como podria  hacer la conexion de vb kon el sql en modulo y modulo de clases?para que aparesca en grilla los datos de sql
y k tipo de codigo es mas efectiva sin problemas saludos

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: como puedo hacer la conexion de vb kon el sql en modulo ?
« Respuesta #1 en: Jueves 23 de Diciembre de 2010, 07:04 »
0
Tengo una pregunta para ti.

Sabes usar visual basic?

Algunas palabras para buscar en internet
DAO
RDO
ADO
ConnectionStrings
DSN
Connection
RecordSet
ODBC
OLE DB

Pensaras que solo te estamos fastidiando, pero tus preguntas se leen con cierto sentido de "haganme las cosas", "pongan un codigo listo para copiar y pegar", si nos dijeran en que tienes problemas pudieramos ayudarte.

Pero si no sabes visual basic y/o SQL entonces no necesitas un foro, necesitas un manual/curso primero tomalo practica y tus dudas exponlas en un foro, nadie te negara la ayuda.


Citar
como puedo hacer la conexion de vb kon el sql en modulo ?
wuenas como podria  hacer la conexion de vb kon el sql en modulo y modulo de clases?para que aparesca en grilla los datos de sql
y k tipo de codigo es mas efectiva sin problemas saludos

que tipo de respuesta se le puede dar a esa pregunta?  :o

en fin...
lee la pagina que te he dicho

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

marcela1513

  • Nuevo Miembro
  • *
  • Mensajes: 15
  • Nacionalidad: cl
    • Ver Perfil
Re: como puedo hacer la conexion de vb kon el sql en modulo ?
« Respuesta #2 en: Jueves 23 de Diciembre de 2010, 13:16 »
0
bueno disculpa lo k dije en la pregunta k codigo serviria para la conexion en el modulo no keria decir "k hagan las cosas"  y "de copiar y pegar"solo me referia a codigos sin erroneo y si se visual basic no lo preguntaria en el tema,por lo que habia hay muxos kodigos de conexion solo eso...

marcela1513

  • Nuevo Miembro
  • *
  • Mensajes: 15
  • Nacionalidad: cl
    • Ver Perfil
Re: como puedo hacer la conexion de vb kon el sql en modulo ?
« Respuesta #3 en: Jueves 23 de Diciembre de 2010, 13:55 »
0
Cita de: "marcela1513"
bueno disculpa lo k dije en la pregunta k codigo serviria para la conexion en el modulo no keria decir "k hagan las cosas"  y "de copiar y pegar"solo me referia a codigos sin erroneo y si se visual basic no lo preguntaria en el tema,por lo que habia hay muxos kodigos de conexion solo eso...

mira tengo ese codigo k no se si serviria muxo pero no si plantearlo en el modulo

Option Explicit

' ----------------------------------------------------------------------------------------------
' \ -- Descripción : Ejemplo simple para eliminar un registro solo o un rango de filas seleccionado
' ----------------------------------------------------------------------------------------------
' ----------------------------------------------------------------------------------------------

' -- Declaraciones
Private Declare Function SetErrorMode Lib "kernel32" (ByVal wMode As Long) As Long
Private Declare Sub InitCommonControls Lib "Comctl32" ()

Dim cn      As ADODB.Connection
Dim Rs      As ADODB.Recordset

' -----------------------------------------------------------------------------------------
' \ -- Función para cargar la tabla en la grilla y otras opciones
' -----------------------------------------------------------------------------------------
Private Sub pv_Flexgrid_Initialize(MSHFlex As MSHFlexGrid, cn As ADODB.Connection)
   
    ' -- Declarar y crear el recordset
    Set Rs = New ADODB.Recordset
    ' -- Ejecutar el command SQL de la tabla productos
    With Rs
        .CursorLocation = adUseClient
        ' -- Ejecutar comando SQL
        .Open "SELECT [IDProducto],[NombreProducto],[UnidadesEnExistencia],[PrecioUnidad] From Productos Order by [IdProducto]", cn, adOpenStatic, adLockOptimistic
    End With
    With MSHFlex
        .AllowUserResizing = flexResizeColumns
        .FixedCols = 0
        .FixedRows = 1
        .ForeColorFixed = vbHighlight
        .BackColorFixed = vbWhite
        .GridLinesFixed = flexGridDots
        .RowHeight(0) = 450
        .GridColor = RGB(190, 190, 190)
        .SelectionMode = flexSelectionByRow
        Set .DataSource = Rs
       
        Dim i As Integer
        For i = 0 To .Cols - 1
            .ColWidth(i) = 1700
        Next
        .Refresh
    End With
   
End Sub
' -----------------------------------------------------------------------------------------
' \ -- Sub para ejecutar la consulta de eliminación
' -----------------------------------------------------------------------------------------
Private Sub ExecuteQuery(cn As ADODB.Connection, sQuery As String)
On Error GoTo Error_Handler
    ' -- Llamar al método Execute para Eliminar el registro
    cn.Execute sQuery
Exit Sub
Error_Handler:
MsgBox Err.Description, vbCritical
End Sub
' -----------------------------------------------------------------------------------------
' \ -- Botón para eliminar el registro
' -----------------------------------------------------------------------------------------
Private Sub Command1_Click()
           
    On Error GoTo Error_Handler
    Dim sQuery As String
   
    With MSHFlexGrid1
        ' -- Comprobar que hay una fila activa
        If .Row <= 0 Then
            MsgBox " No hay ninguna fila seleccionada para eliminar ", vbExclamation
            Exit Sub
        End If
        ' -- Mostrar en un mensaje la cantidad de filas a eliminar
        If MsgBox("Se van a eliminar " & CStr(Abs(.Row - .RowSel) + 1) & " registros ... ¿ Continuar?", vbQuestion + vbYesNo) = vbNo Then
            Exit Sub
        End If
       
        ' -- Obtener valores del rango seleccionado
        Dim i As Long
        Dim j As Long
        Dim k As Long
        If .Row < .RowSel Then i = .Row: j = .RowSel
        If .Row > .RowSel Then j = .Row: i = .RowSel
        If .Row = .RowSel Then i = .Row: j = .Row
        ' -- Recorrer en un bucle el rango de selección
        For k = i To j
            .Row = k
            sQuery = "DELETE * FROM [Productos] WHERE [IdProducto] = " & CLng(.TextMatrix(.Row, 0))
            Call ExecuteQuery(cn, sQuery)
        Next
       
        ' -- Deshabilitar el redraw para el MSHFlexGrid
        .Redraw = False
        ' -- Cargar nuevamente el Grid para actualizar los datos
        Set .DataSource = Nothing
        ' -- Ejecutar el método Requery para volver a cargar el recordset actualizado
        Rs.Requery
        ' -- Enlazar el conjunto de datos con el Grid
        Set .DataSource = Rs
        ' -- Volver a habilitar el repintado del control Flex
        .Redraw = True
    End With
   
    ' -- Errores
    Exit Sub
Error_Handler:
MsgBox Err.Description, vbCritical
End Sub
' --------------------------------------------------------------------------------------------
' \ -- Inicio
' --------------------------------------------------------------------------------------------
Private Sub Form_Load()
    ' -- ruta de la base de datos
    Dim path_bd As String

    path_bd = App.Path & "datadb1.mdb"

    With MSHFlexGrid1
        ' --Crear una Nueva conexión
        Set cn = New ADODB.Connection
        ' -- Abre la bd pasando de la cadena de conexión OLEDB
        cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & path_bd & ";Persist Security Info=False"
        Call pv_Flexgrid_Initialize(MSHFlexGrid1, cn)
    End With
End Sub
' --------------------------------------------------------------------------------------------
' \ -- Fin -- Descargar
' --------------------------------------------------------------------------------------------
Private Sub Form_Unload(Cancel As Integer)
    If Not Rs Is Nothing Then
        If Rs.State = adStateOpen Then Rs.Close
        Set Rs = Nothing
    End If
    Call pvCloseDataBase
End Sub
' --------------------------------------------------------------------------------------------
' \ -- Iniciar InitCommonControls
' --------------------------------------------------------------------------------------------
Private Sub Form_Initialize()
    Call SetErrorMode(2)
    Call InitCommonControls
End Sub
' --------------------------------------------------------------------------------------------
' \ -- Cerrar conexión
' --------------------------------------------------------------------------------------------
Private Sub pvCloseDataBase()
    If Not cn Is Nothing Then
       If cn.State = adStateOpen Then cn.Close
       Set cn = Nothing
    End If
End Sub

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: como puedo hacer la conexion de vb kon el sql en modulo ?
« Respuesta #4 en: Domingo 26 de Diciembre de 2010, 20:43 »
0
Pues ese codigo parece funcionar

si quieres implementarlo en un modulo estandar, aqui una forma sencilla, sin muchas validaciones, necesitarias estudiarlo y perfeccionarlo para que lo apliques a lo tuyo

Código: Visual Basic
  1.  
  2. function ConectarDB(ByRef Cnn as Connection) As boolean
  3. on error goto zError
  4.            Cnn.Open "DSN='BaseSQL'"
  5.            ConectarDB = Cnn.State =1
  6.  
  7. zError:
  8.      if Err.Number>0 then
  9.          MsgBox(Err.Description)
  10.          Err.Clear
  11.          ConectarDB = false
  12.      end if
  13. end function
  14.  

Código: Visual Basic
  1.  
  2. function Consulta(ByRef Cnn as Connection,SQL as string) as RecordSet
  3.     Set  Consulta = Cnn.Execute (SQL)
  4. end if
  5.  

Uso:

Código: Visual Basic
  1. Dim oConnexion as Connection
  2. Dim oRS as RecordSet
  3.  
  4. if ConectarDB(oConnexion) then
  5.     set oRS = Consulta(oConnexion,"SELECT * FROM PRODUCTOS")
  6. end if
  7.  

(NOTA: no lo compile asi que tendras que probarlos )

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================