Curso Completo Base de datos

Ayudacon 3 pedidos

Colapsar
X
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar todos
nuevos mensajes

  • Ayudacon 3 pedidos

    Hola amigos del foro antes que todo le doy mis saludos a todos,quiero pedirle una ayudita sobre un tema de programacion soy nuevo en programacion
    he creado un from sencillo con botones datos modificar y eliminar pero quiero hacer otro from relacionado con el primero para que me busque con opciones (nombre, numero de serie y rotulo) que me de esas 3 opciones tengo el fron hecho en visual basic 2010 les muestro unas imagenes de ejemplo, estos ejemplos son de un from en excel.

    El segundo se puede buscar en una base de datos de acces dos campos los 2 campos son rotulo y clave, que compare el textbox rotuloy busque la clave en la base de datos de acces adunto imagen

    y tercero, como se realiza la conexion atravez de acces, la idea es que de la opcion de buscar la base de datos. Como se va a ocupar el programa en varios Equipos y que quede conectada con dicha busqueda.

    ojala se entienda la idea.
    quedo a tento a sus comentarios

  • #2
    Re: Ayudacon 3 pedidos

    Hola hans poblete, he movido este tema hacia aquí porque el foro Visual Studio .NET (Resto de Lenguajes) - VB-MUNDO - Visual Basic, y mucho mas es para lenguajes distintos de Visual Basic y de C#.

    Para conectar ambos Forms, podés hacer desde el Form1:
    Código:
    Private Sub btn_Buscar_Click(...) Handles btn_Buscar.Click
        Dim frm as frm_Buscar
        frm = New frm_Buscar
        frm.Show
    End Sub
    Para buscar por dos campos:
    [highlight=sql]
    SELECT * FROM Tabla WHERE CampoTexto1 = 'un texto' AND CampoNumero1 = un_número;
    [/highlight]

    Una forma de conectar con Access®:
    [highlight=vb.net]
    ' Crea una variable de tipo System.Data.OleDb.OleDbDataAdapter a partir de una cadena SELECT y de la cadena de conexión.
    ' y luego llena un DataTable
    Using da As OleDbDataAdapter = New OleDbDataAdapter("SELECT * FROM Tabla;", "Provider=Microsoft.Jet.OleDb.4.0;Data Source=C:\ruta de la base de datos\Database.mdb;")
    Using dt As DataTable = New DataTable("Nombre_Tabla")
    da.Fill(dt)
    End Using
    End Using
    [/highlight]
    Dependiendo de la versión de Access®, puede ser el proveedor 4.0, como en el ejemplo de arriba, ó bien el 12.0 (extensión de archivo .accdb):
    Código:
    Provider=Microsoft.ACE.OleDb.12.0;
    Más info en ConnectionStrings.com - Forgot that connection string? Get it here!
    ¡Saludos!
    Saludos.

    Comentario


    • #3
      Re: Ayudacon 3 pedidos

      gracias por ayudarme me ayudo bastante pero tengo problema con el de buscar, mira la idea es que pueda buscar en 3 opciones por nombre, numero de serie, y rotulo ey que el el listbox salga los resultados de búsqueda y seleccionar la búsqueda y me llene los textbox del primer formulario

      Código:
              Dim CMD As New OleDb.OleDbCommand("SELECT * FROM Inventario WHERE Serie='" & txtbuscar.Text & "'", CN)
              Dim DR As OleDb.OleDbDataReader
      
              CN.Open()
              DR = CMD.ExecuteReader
      
              If DR.Read Then
                  FrmSonda.TXTSERIE.Text = DR(0)
                  FrmSonda.TXTROTULO.Text = DR(1)
                  FrmSonda.TXTDATO.Text = DR(2)
                  FrmSonda.CBOFABRICANTE.Text = DR(3)
                  FrmSonda.CBOTIPO.Text = DR(4)
                  FrmSonda.CBOMODELO.Text = DR(5)
                  FrmSonda.TXTRUT.Text = DR(6)
                  FrmSonda.TXTNOMBRE.Text = DR(7)
                  FrmSonda.TXTDIRECCION.Text = DR(8)
                  FrmSonda.CBOCOMUNA.Text = DR(9)
                  FrmSonda.CBOEMPRESA.Text = DR(10)
                  FrmSonda.CBOCUIDAD.Text = DR(11)
                  FrmSonda.TXTIP.Text = DR(12)
                  FrmSonda.txtnombreequipo.Text = DR(13)
                  FrmSonda.TXTCLAVE.Text = DR(14)
                  FrmSonda.TXTANEXO.Text = DR(15)
                  FrmSonda.TXTCORREO.Text = DR(16)
                  FrmSonda.CBOFABRICA1.Text = DR(17)
                  FrmSonda.CBOMODEL1.Text = DR(18)
                  FrmSonda.TXTSERIE1.Text = DR(19)
                  FrmSonda.TXTROTULO1.Text = DR(20)
                  FrmSonda.TXTCANDADO.Text = DR(21)
                  FrmSonda.CBOFABRICA2.Text = DR(22)
                  FrmSonda.CBOMODEL2.Text = DR(23)
                  FrmSonda.TXTSERIE2.Text = DR(24)
                  FrmSonda.TXTROTULO2.Text = DR(25)
                  FrmSonda.TXTCHECKLIST1.Text = DR(26)
                  FrmSonda.TXTCOMODATO.Text = DR(27)
                  FrmSonda.TXTDESCRIPCION.Text = DR(28)
              Else
                  MsgBox("ERROR")
              End If
              CN.Close()
              BOTONES_CONTROL()
              BLOQUEAR()
              Close()
          End Sub
      este el code que tengo funciona pero solo me busca una sola opción me puedes ayudar

      Comentario


      • #4
        Re: Ayudacon 3 pedidos

        Hola a los compañeros del Foro

        Feliz año nuevo a todos tenia tiempo sin estar por aca, pero ahi le damos

        Por otro lado, para tu consulta, entiendo que si tienes varias opciones de busqueda lo mas factible es que utilices un SELECT CASE por cada condicion, asi utilizar un Query diferente para la consulta y te servira para tantas consultas como requieras.

        Ej.

        Código PHP:
        (Imagino que estas usando combo)

        SELECT CASE Combo.text

        CASE "NOMBRE"
        aqui la parte del Query
        CASE "SERIE"
        aqui la parte del Query
        CASE "ROTULO"
        aqui la parte del Query

        END SELECT 
        Entiendo que con esto seria suficiente para la solucion de tu tema, dale a ver como te va y ahi me cuentas.

        Saludos.
        El EXITO en la vida no se mide por lo que logras, sino por los obstaculos que superas.

        No es la APTITUD, sino tu ACTITUD la que determina tu ALTITUD

        Comentario


        • #5
          Re: Ayudacon 3 pedidos

          hola amigo no soy un programador experto estoy iniciando en este tema no entiendo muy bien del case como se hace pero hay la posibilidad de este código transformarlo a visual Basic 2010 para poder usarlo en mi proyecto

          Código:
          Private Sub ComboBox1_Change()
          On Error Resume Next
          buscar = ""
          buscar.SetFocus
          End Sub
          
          Private Sub UserForm_initialize()
          On Error Resume Next
          ComboBox1.List = Array("NOMBRES APELLIDOS", "RUT", "ROTULO", "Nº de SERIE")
          End Sub
          
          Private Sub buscar_Change()
          On Error Resume Next
          
          Select Case ComboBox1.ListIndex
          Case 0: col = 1
          Case 1: col = 2
          Case 2: col = 13
          Case 3: col = 11
          End Select
          
          With Sheets("BASE DATOS")
          If ComboBox1 <> "" Then
          If buscar <> "" Then
          lista.Clear
          x = 0: i = 1
          nxt: rw = .Range(.Cells(i, col), .Cells(1000000, col)).Find(buscar, lookat:=xlPart).Row
          If rw = i Then Exit Sub
          lista.AddItem
          lista.List(x, 0) = .Cells(rw, col)
          lista.List(x, 1) = rw
          x = x + 1
          i = rw
          GoTo nxt
          Else
          lista.Clear
          End If
          Else
          buscar = ""
          lista.Clear
          End If
          End With
          End Sub
          
          Private Sub CommandButton2_Click()
          Unload Me
          End Sub
          
          Private Sub lista_Change()
          On Error Resume Next
          Dim nom, ap, am As String
          With UserForm1
          file = lista.Column(1)
          .TextBox1 = Sheets("BASE DATOS").Range("A" & file).Value
          .TextBox2 = Sheets("BASE DATOS").Range("B" & file).Value
          .TextBox3 = Sheets("BASE DATOS").Range("C" & file).Value
          .TextBox4 = Sheets("BASE DATOS").Range("D" & file).Value
          .TextBox5 = Sheets("BASE DATOS").Range("E" & file).Value
          .TextBox6 = Sheets("BASE DATOS").Range("F" & file).Value
          .TextBox7 = Sheets("BASE DATOS").Range("G" & file).Value
          .TextBox8 = Sheets("BASE DATOS").Range("H" & file).Value
          .TextBox9 = Sheets("BASE DATOS").Range("I" & file).Value
          .TextBox10 = Sheets("BASE DATOS").Range("J" & file).Value
          .TextBox11 = Sheets("BASE DATOS").Range("K" & file).Value
          .TextBox12 = Sheets("BASE DATOS").Range("L" & file).Value
          .TextBox13 = Sheets("BASE DATOS").Range("M" & file).Value
          .TextBox14 = Sheets("BASE DATOS").Range("N" & file).Value
          .TextBox15 = Sheets("BASE DATOS").Range("O" & file).Value
          .TextBox16 = Sheets("BASE DATOS").Range("P" & file).Value
          .TextBox17 = Sheets("BASE DATOS").Range("Q" & file).Value
          .TextBox18 = Sheets("BASE DATOS").Range("R" & file).Value
          .TextBox19 = Sheets("BASE DATOS").Range("S" & file).Value
          .TextBox20 = Sheets("BASE DATOS").Range("T" & file).Value
          .TextBox21 = Sheets("BASE DATOS").Range("U" & file).Value
          .TextBox22 = Sheets("BASE DATOS").Range("V" & file).Value
          .TextBox23 = Sheets("BASE DATOS").Range("W" & file).Value
          .TextBox25 = Sheets("BASE DATOS").Range("X" & file).Value
          .TextBox26 = Sheets("BASE DATOS").Range("Y" & file).Value
          
          
          If .TextBox13 <> "" And .TextBox19 <> "" Then
          .CommandButton7.Enabled = False
          Else
          .CommandButton7.Enabled = True
          End If
          
          End With
          End Sub

          Comentario


          • #6
            Re: Ayudacon 3 pedidos

            Hola Compañero,

            Realmente no se porque cargas ejemplos de Excel donde estas poniendo que estas haciendo un Form de Visual Basic 2010, pero descuida te pongo un ejemplo de una consulta de varias opciones, con base de datos de Access

            Crea un Modulo y pones esto para no tener que declarar las variables varias veces

            Código PHP:
            En la parte de arriba pones

            Imports System
            .Data.OleDb

            En el modulo pones esto

                
            Public Conexion As OleDbConnection
                
            Public Comando As OleDbCommand
                
            Public Almacen As DataSet
                
            Public Adaptar As OleDbDataAdapter
                
            Public SQL As String
                
            Public Cnn As String "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Basededatos.mdb;Persist Security Info=False;Jet OLEDB:Database Password=" 
            En el Form, por la parte de arriba importa esto.

            Imports System.Data.OleDb

            Código PHP:
            Evento Load

                    Conexion 
            = New OleDbConnection
                    Conexion
            .ConnectionString Cnn
                    Conexion
            .Open()
                    
            SQL "select Campo1, Campo2, etc from tabla"
                    
            Adaptar = New OleDbDataAdapter(SQLConexion)
                    
            Conexion.Close()
                    
            Almacen = New DataSet
                    Adaptar
            .Fill(Almacen"Tabla")
                    
            With Datagridview1
                        
            .DataSource Almacen
                        
            .DataMember "tabla"
                        
            .Refresh()
                        .
            ReadOnly True
                    End With 
            Por ultimo, en un boton pones este codigo,

            Código PHP:

                    
            Try
                        
            Select Case cboCriterio.Text
                            
            Case "Nombres"
                        
            SQL "select Campo1, Campo2, etc from Tabla where Nombres alike '%" txtBuscar.Text "%' "

                            
            Case "Apellidos"
                        
            SQL "select Campo1, Campo2, etc from Tabla Where Apellidos alike  '%" txtBuscar.Text "%' "

                            
            Case "RUT"
                        
            SQL "select Campo1, Campo2, etc from Tabla Where Descripcion alike  '%" txtBuscar.Text "%' "

                        
            End Select
                        Conexion
            .Open()
                        
            Adaptar = New OleDbDataAdapter(SQLConexion)
                        
            Almacen = New DataSet
                        Adaptar
            .Fill(Almacen"Tabla")
                        
            With Datagridview1
                            
            .DataSource Almacen
                            
            .DataMember "Tabla"
                            
            .Refresh()
                            .
            ReadOnly True
                        End With
                        Conexion
            .Close()
                    Catch 
            ex As Exception
                        MsgBox
            (ex.Message)
                        
            Conexion.Close()
                    
            End Try 
            Creo que con esto podrias hacer tu consulta, solo tienes que agregar los criterios de busqueda en el combo.

            Cualquier cosa estare por aca.

            Saludos.
            Última edición por dash34_12; 26-01-2015, 02:13 AM.
            El EXITO en la vida no se mide por lo que logras, sino por los obstaculos que superas.

            No es la APTITUD, sino tu ACTITUD la que determina tu ALTITUD

            Comentario

            Trabajando...
            X