• Viernes 8 de Noviembre de 2024, 10:46

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 - elultimoguerrero

Páginas: [1]
1
VB .NET / GUARDAR REGISTROS.
« en: Martes 16 de Marzo de 2010, 00:09 »
APROVECHO PARA DEJARLES OTRA DUDA QUE TENGO, EL BOTÓN DE GUARDAR YA ME GUARDA EN LA BASE DE DATOS, LA CUAL ES MYSQL Y ESTOY PROGRAMANDO EN VISUAL BASIC 2005, PERO AL MOMENTO DE GUARDAR ME HACE 2 REGISTROS, UNO CON LA CLAVE 0 (QUE NO DEBE DE CREARSE) EN DONDE SE ALOJAN LOS CAMPOS DEL DATAGRIDVIEW Y LA CLAVE 1 DONDE SE ALOJAN LOS CAMPOS QUE SON DE LOS TEXTBOX, SE QUE ESTO LO HACE PORQUE ESTOY ADAPTANDO DOS NEW MYSQLDATAADAPTER DISTINTOS, PERO HE TRATADO DE ADAPTARLOS A UN SOLO REGISTRO Y NO ME SALE, SI ME PUEDEN AYUDAR SE LOS AGRADECERÉ.

   Dim dat As New MySqlDataAdapter
        Dim dag As New MySqlDataAdapter
        Dim ds As New DataSet
        Dim dr As DataRow
        Dim cb As New MySqlCommandBuilder
        Dim cm As New MySqlCommand
        dat = New MySqlDataAdapter("select * from asistencia order by Clave asc;", con)
        dat.Fill(ds, "asistencia")
        cb = New MySqlCommandBuilder(dat)
       If ds.Tables("asistencia").Rows.Count > 0 Then
            dr = ds.Tables("asistencia").Rows(ds.Tables("asistencia").Rows.Count - 1)
            tclave.Text = Val(dr("Clave")) + 1
        Else
            tclave.Text = "1"
        End If
        dr = ds.Tables("asistencia").NewRow
        dr("Titulo_clase") = ttitulo.Text
        dr("Fecha") = dfecha.Text
        dr("Profesor") = tprofesor.Text
        dr("Clave") = tclave.Text
        dr("Visitas") = Val(tvisitas.Text)
        dr("Total_presentes") = Val(ttotalpresentes.Text)
        dr("Total_tareas") = Val(ttotaltareas.Text)
        dr("Total_participaciones") = Val(ttotalparticipaciones.Text)
        ds.Tables("asistencia").Rows.Add(dr)
        dat.Update(ds.Tables("asistencia"))
        ds.AcceptChanges()
        dag = New MySqlDataAdapter("select * from asistencia order by Clave asc;", con)
        dag.Fill(ds, "asistencia")
        cb = New MySqlCommandBuilder(dag)
        For i As Integer = 0 To DataGridView1.Rows.Count - 1
            If DataGridView1.Rows(i).Cells(0).Value <> "" Then
                dr = ds.Tables("asistencia").NewRow
                dr("No") = DataGridView1.Rows(i).Cells(0).Value
                dr("Nombre") = DataGridView1.Rows(i).Cells(1).Value
                dr("Presente") = DataGridView1.Rows(i).Cells(2).Value
                dr("Tarea") = DataGridView1.Rows(i).Cells(3).Value
                dr("Participacion") = DataGridView1.Rows(i).Cells(4).Value
                ds.Tables("asistencia").Rows.Add(dr)
                dag.Update(ds.Tables("asistencia"))
                ds.AcceptChanges()
            End If
        Next
        deshabilitarcajas()
        bnuevo.Enabled = True
        bguardar.Enabled = False
        bimprimir.Enabled = True
        bbuscar.Enabled = True
        bmodificar.Enabled = True
        bguardarmodificacion.Enabled = False
        beliminar.Enabled = False
        bcancelar.Enabled = False

2
VB .NET / Suma de un checkboxcolumn en un datagridview
« en: Lunes 15 de Marzo de 2010, 23:55 »
HOLA AMIGOS DEL FORO, ESPERO ME PUEDAN AYUDAR CON LA SIGUIENTE DUDA:

TENGO UNA APLICACIÓN EN VISUAL BASIC 2005 QUE CONSTA DE UN DATAGRIDVIEW CON 3 CAMPOS, LOS CUALES ESTAN DENTRO DEL DATAGRIDVIEW PERO EN DATAGRIDVIEWCHECKBOXCOLUMN; LOS CAMPOS SON LOS SIGUIENTES: PRESENTE, TAREAS Y PARTICIPACIÓN, LO QUE QUIERO HACER ES QUE AL MOMENTO DE SELECCIONAR LOS CHECKBOXS DEL CAMPO PRESENTE ESTOS SE SUMEN Y ME MUESTRE EL TOTAL DE SELECCIONADOS EN UN TEXTBOX AL CUAL HE PUESTO DE NOMBRE TTOTALPRESENTES.TEXT, DE LA MISMA FORMA SEA PARA EL CAMPO TAREAS Y PARTICIPACIÓN, ESPERO ME PUEDAN AYUDAR, GRACIAS.

3
VB .NET / Imprimir por fechas.
« en: Martes 26 de Enero de 2010, 01:52 »
Hola amigos del foro, tengo la siguiente duda, espero me puedan ayudar.

Necesito imprimir un reporte por fechas, es decir, al seleccionar una fecha de un DataTimePickera a otra fecha de otro DataTimePicker, estoy trabajando con un visual basic 2005 y mysql, todo lo que imprimo los estoy haciendo en un CrystalReports, espero me me puedan hechar la mano, gracias.

4
VB .NET / MDIPARENT
« en: Domingo 27 de Septiembre de 2009, 19:29 »
HOLA COMPAÑEROS DEL SITIO, ESPERO ME PUEDAN AYUDAR CON ESTA DUDA QUE TENGO, EN UN FORMULARIO NORMAL (SIN QUE SEA MDIPARENT) ESTE CÓDIGO FUNCIONA CORRECTAMENTE, CUANDO YO DOY CLIC EN CUALQUIER PARTE DEL FORMULARIO SE OCULTAN LOS MENÚS Y SUBMENÚS, PERO CUANDO YO CONVIERTO ESTE FORMULARIO EN MDIPARENT YA NO OCULTA LOS MENÚS Y SUBMENÚS, HÉ INTENTADO DE TODO Y NOMÁS NADA, LES DEJO EL CÓDIGO, ESPERO ME PUEDAN AYUDAR CON ESTA DUDA, GRACIAS.

Public Class forma

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Label1.Visible = False Then
            Label1.Visible = True
        Else
            Label1.Visible = False
        End If
        If Label2.Visible = False Then
            Label2.Visible = True
        Else
            Label2.Visible = False
        End If
        Label3.Visible = False
        Label4.Visible = False
    End Sub

    Private Sub Label1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseMove
        Label3.Visible = True
    End Sub

    Private Sub Label2_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label2.MouseMove
        Label4.Visible = True
    End Sub

    Private Sub forma_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
        Label1.Visible = False
        Label2.Visible = False
        Label3.Visible = False
        Label4.Visible = False
    End Sub
End Class

5
VB .NET / Re: Duda sobre un metodo de VB 2005
« en: Miércoles 23 de Septiembre de 2009, 18:53 »
Ok Boxcarpilot, un módulo lo agregas de esta forma, agregar... módulo, esta función yo la utilizo en este ejemplo como una variable global, es decir, imagínate que tengas 5, 10, 20 ó más formularios donde tengas que convertir numeros a letras, yo este módulo lo delcaro como una variable global, es decir que todos esos 5 módulos la podrán utilizar, lo único que estaría poniendo en cada módulo es el código de la caja de texto a la que le di doble clic, si yo lo hiciera de manera individual tendría que agregar un módulo por cada formulario, obviamente existen otras códigos que hacen este tipo de conversiones pero la verdad no los tengo a la mano, mi programación está orientada a objetos, los formularios, cajas de textos, bases de datos, etc, espero te haya ayudado con tus dudas, seguimos colaborando.

6
VB .NET / Re: Duda sobre un metodo de VB 2005
« en: Miércoles 23 de Septiembre de 2009, 02:24 »
Boxcarpilot, en el código que te mandé se le da doble clic  a la caja con el nombre de tnumeros y no a la tletras, lo que pasa es que tuve un error de escritura y me equivoqué, hay para que lo corrijas, saludos.

7
VB .NET / Re: Duda sobre un metodo de VB 2005
« en: Miércoles 23 de Septiembre de 2009, 02:14 »
Que tal Boxcarpilot, lo que yo entiendo que tu quieres hacer es que cuando introduzcas un número el sistema te muestra la cantidad en letras, es muy sencillo hacerlo, nuestro compañero sagma te ha proporcionado una buena solución, yo lo hago de la siguente forma, espero te pueda ayudar. Vamos a poner dos cajas de texto en nuestro formulario a una la llamaremos tnumeros y a otra tletras, damos doble clic a la caja tletras y escribimos el siguiente código:

Try
    If IsNumeric(Me.tnumeros.Text) Then
        Me.tletras.Text = Modletras.Convertir( _
        CLng(Me.tnumeros.Text), False)
    Else
        Me.tletras.Text = ""
    End If
Catch
    Me.tletras.Text = "Error."
End Try

Para esto vamos a agregar un módulo al que llamaremos Modletras (esta es una variable global para que no tengas que hacerlo en cada uno de los formularios) y agregamos el siguiente código:

Option Explicit On
Option Strict On

Module Modletras
    Public Function Convertir(ByVal Valor As Int64, Optional ByVal esCorto As Boolean = False) As String

        REM aUnidades  ' Unidades
        REM a1DecenasL ' Decenas Largo 10
        REM a1DecenasC ' Decenas Corto 10
        REM a2DecenasE ' Decenas Exact 20-90
        REM a2DecenasL ' Decenas Largo 20-90
        REM a2DecenasC ' Decenas Corto 20-90
        REM aCentenas  ' Centenas
        REM aMillares  ' Millares

        Dim aUnidades As String() = {"", "UNO", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE"}
        Dim a1DecenasL As String() = {"DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIEZ Y SEIS", "DIEZ Y SIETE", "DIEZ Y OCHO", "DIEZ Y NUEVE"}
        Dim a1DecenasC As String() = {"DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE"}
        Dim a2DecenasE As String() = {"", "->ERROR<-", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA"}
        Dim a2DecenasL As String() = {"", "->ERROR<-", "VEINTE Y ", "TREINTA Y ", "CUARENTA Y ", "CINCUENTA Y ", "SESENTA Y ", "SETENTA Y ", "OCHENTA Y ", "NOVENTA Y "}
        Dim a2DecenasC As String() = {"", "->ERROR<-", "VEINTI", "TREINTI", "CUARENTI", "CINCUENTI", "SESENTI", "SETENTI", "OCHENTI", "NOVENTI"}
        Dim aCentenas As String() = {"", "CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS"}
        Dim aMillares As String() = {"", " MIL ", " MILLONES ", " MIL MILLONES ", " BILLONES ", " MIL BILLONES ", " TRILLONES ", " MIL TRILLONES ", "->ERROR<-", "->ERROR<-"}

        Dim CadenaFinal As String = ""
        Dim CadenaTemp As String = ""

        Dim Numero As Int64 = Valor
        Dim Millon As Integer = 0

        Dim Unidades As Integer
        Dim Decenas As Integer
        Dim Centenas As Integer

        Do While Numero > 0
            CadenaTemp = ""

            Unidades = CInt(Numero Mod 10)
            Decenas = CInt((Numero  10) Mod 10)
            Centenas = CInt((Numero  100) Mod 10)

            'Centenas
            If Centenas <> 0 Then
                If Centenas = 1 And Decenas + Unidades = 0 Then
                    CadenaTemp &= "CIEN"
                ElseIf Decenas + Unidades = 0 Then
                    CadenaTemp &= aCentenas(Centenas)
                Else
                    CadenaTemp &= aCentenas(Centenas) & " "
                End If
            End If

            'Decenas
            If Decenas <> 0 Then
                If esCorto Then
                    If Decenas = 1 Then
                        CadenaTemp &= a1DecenasC(Unidades)
                    ElseIf Unidades > 0 Then
                        CadenaTemp &= a2DecenasC(Decenas)
                    Else
                        CadenaTemp &= a2DecenasE(Decenas)
                    End If
                Else
                    If Decenas = 1 Then
                        CadenaTemp &= a1DecenasL(Unidades)
                    ElseIf Unidades > 0 Then
                        CadenaTemp &= a2DecenasL(Decenas)
                    Else
                        CadenaTemp &= a2DecenasE(Decenas)
                    End If
                End If
            End If

            'Unidades
            If Unidades <> 0 Then
                If Decenas <> 1 Then
                    If Unidades = 1 And Millon <> 0 Then
                        CadenaTemp &= "UN"
                    Else
                        CadenaTemp &= aUnidades(Unidades)
                    End If
                End If
            End If

            'Millares
            If Centenas + Decenas + Unidades <> 0 Then
                If Centenas + Decenas = 0 And Unidades = 1 And (Millon = 2 Or Millon = 4 Or Millon = 6) Then
                    Select Case Millon
                        Case Is = 2
                            CadenaTemp &= " MILLON "
                        Case Is = 4
                            CadenaTemp &= " BILLON "
                        Case Is = 6
                            CadenaTemp &= " TRILLON "
                    End Select
                Else
                    CadenaTemp &= aMillares(Millon)
                End If
            End If

            CadenaFinal = CadenaTemp & CadenaFinal
            Numero = 1000
            Millon += 1
        Loop

        Return CadenaFinal
    End Function
End Module

Existen muchas formas de lograr esta función, pero yo me adapté mucho a esta porque la uso para muchos formularios, estudia la solución de sagma y tu ya decidirás cual te conviene más, saludos.

8
VB .NET / Re: Problema de Depuracion
« en: Miércoles 23 de Septiembre de 2009, 01:53 »
Hola hugo1983, en cuanto a lo que yo se, cuando tu hagas cambios en cualquier parte del formulario ó código, no es necesario que depures ó guardes estos cambios, el sistema guarda todos tus actualizaciones de manera automática cuando tu corrres el sistema, inténtalo, cuando hagas cambios en el formulario ó código corre tu programa y en ese momento el sistema de visual basic ya ha guardado los cambios de manera automática, espero te haya ayudado a resolver tu duda, seguimos en contacto, saludos.

9
VB .NET / Re: Acceso a usuarios.
« en: Miércoles 23 de Septiembre de 2009, 01:48 »
Hola compañeros del foro, mil disculpas ya que no me había podido conectar al foro por cuestiones de trabajo y no haber respondido a la ayuda que ustedes me han brindado, hace unos minutos, después de haber batallado y comparado códigos encontré la solución al problemita que tenía y aquí con mucho gusto la comparto con ustedes, el código si cambia un buen en cuanto a las órdenes dadas ya que se agregaron variables y demás, espero los comparen y los comprueben para que puedan entender su funcionamiento, seguimos colaborando con el foro, saludos.

Imports MySql.Data.MySqlClient
Imports System.Data

Public Class accesoausuarios
    Dim con As New MySqlConnection()
    Dim da As New MySqlDataAdapter()
    Dim ds As New DataSet()
    Dim dr As DataRow
    Dim dt As DataTable

    Private Sub bvalidar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bvalidar.Click
        con = New MySqlConnection("server=xxx;database=xxx;uid=xxx;pwd=xxx;")
        da = New MySqlDataAdapter("select Usuario, Contrasena from registrodeusuarios where Usuario = '" & tusuario.Text & "' and Contrasena = '" & tcontrasena.Text & "'", con)
        da.Fill(ds, "registrodeusuarios")
        Me.dt = Me.ds.Tables("registrodeusuarios")
        For Each Me.dr In Me.dt.Rows
            If tusuario.Text = Me.dr("Usuario") And tcontrasena.Text = Me.dr("Contrasena") Then
                Dim fvideohome As New videohome
                fvideohome.Show()
                Me.Hide()
            Else
                MsgBox("Verifique el nombre de usuario y la contraseña.", MsgBoxStyle.Information, "Operación cancelada.")
            End If
        Next
    End Sub

    Private Sub bcancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bcancelar.Click
        End
    End Sub

    Private Sub tusuario_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tusuario.KeyPress
        If Asc(e.KeyChar) = 13 Then
            e.Handled = True
            SendKeys.Send("{tab}")
        End If
    End Sub
End Class

10
VB .NET / Acceso a usuarios.
« en: Viernes 18 de Septiembre de 2009, 04:27 »
Hola amigos, espero me puedan ayudar con la siguente duda que tengo, estoy haciendo una aplicación en la cual al ejecutar un sistema me pide el nombre de usuario y contraseña para poder acceder al sistema, ya tengo lo que son los registros de usuarios, lo que no se hacer es que cuando yo agregue otro usuario y este sea de igual nombre a otro usuario registrado me diga con un mensaje que ese nombre ya está ocupado, también algo que he observado es que cuando yo ingreso el nombre de usuario y la contraseña en el acceso de usuarios no respeta mayúsculas ó minúsculas con las que fueron registrados, acepta combinación de ambas y eso no debería de ser, utilizo visual basic 2005 edición express y mysql este es mi código:

Imports MySql.Data.MySqlClient
Imports System.Data

Public Class accesoausuarios
    Dim con As New MySqlConnection()
    Dim da As New MySqlDataAdapter()
    Dim ds As New DataSet()

    Private Sub bvalidar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bvalidar.Click
        con = New MySqlConnection("server=xxx;database=xxx;uid=xxx;pwd=xxx;")
        da = New MySqlDataAdapter("select Usuario, Contrasena from registrodeusuarios where Usuario = '" & tusuario.Text & "' and Contrasena = '" & tcontrasena.Text & "'", con)
        da.Fill(ds, "registrodeusuarios")
        If ds.Tables("registrodeusuarios").Rows.Count > 0 Then
            Dim fvideohome As New videohome
            fvideohome.Show()
            Me.Hide()
        Else
            MsgBox("Verifique el nombre de usuario y la contraseña.", MsgBoxStyle.Information, "Operación cancelada.")
        End If
    End Sub

    Private Sub bcancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bcancelar.Click
        End
    End Sub

    Private Sub tusuario_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tusuario.KeyPress
        'Al presionar la tecla enter nos posiciona en la siguiente caja de texto.
        If Asc(e.KeyChar) = 13 Then
            e.Handled = True
            SendKeys.Send("{tab}")
        End If
    End Sub
End Class

Espero me puedan ayudar ya que lo hé intentado mucho y no encuentro mucha ayuda en la red con lo que es mysql y visual basic, se los agradeceré mucho.

11
VB .NET / Re: Búsqueda de registro.
« en: Viernes 18 de Septiembre de 2009, 04:06 »
Hola dlplenin, amigos del foro, te agradezco dlplenin por ese nuevo código que me mandastes, se ve mejor el estilo, lo probé y definitivamente lo voy a dejar así, gracias por ayudarme, seguimos en contacto compareos, saludos.

12
VB .NET / Re: Búsqueda de registro.
« en: Miércoles 16 de Septiembre de 2009, 20:00 »
Compañero plenin, estuve estudiando y poniendo a prueba tu código y realmente funciona, pero solo tengo una pequeña observación, cuando inicia el formulario de las búsquedas me aparece por default en el combo el nombre de un usuario, por estética, no debería de aparecer, estuve tratando de hacer que fuera así y no pude, por lo que compilé tu código con el que un servidor tenía y lo pude lograr, te comparto a tí y a los usuarios del foro el resultado final y esto es lo que me mostro, de cualquier manera te agradezco mucho tu ayuda porque sin ella no lo ubiese logrado, ya que a partir de tu código lo pude lograr, espero que si puedes en el código que tu me mandastes puedas ayudarme a resolver la duda que tuve para así aprender ha tener otra solución diferente y con menos código, gracias y seguimos colaborando.

Imports MySql.Data.MySqlClient
Imports System.Data

Public Class busquedadeclientes
    Dim con As New MySqlConnection()
    Dim da As New MySqlDataAdapter()
    Dim ds As New DataSet()
    Dim dr As DataRow

    Private Sub busquedadeclientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim I As Integer
        con = New MySqlConnection("server=xxx;database=xxx;uid=xxx;pwd=xxx;")
        da = New MySqlDataAdapter("select concat(Apellido_paterno,' ', Apellido_materno,' ', Nombres) as na, No_credencial from registrodeclientes order by Apellido_paterno asc;", con)
        da.Fill(ds, "registrodeclientes")
        If ds.Tables("registrodeclientes").Rows.Count > 0 Then
            For I = 0 To ds.Tables("registrodeclientes").Rows.Count - 1
                dr = ds.Tables("registrodeclientes").Rows(I)
                Me.cselecciondelcliente.Text = ""
                Me.cselecciondelcliente.DataSource = ds.Tables("registrodeclientes").DefaultView
                cselecciondelcliente.ValueMember = "No_credencial"
                cselecciondelcliente.DisplayMember = "na"
             Next
        End If
    End Sub

    Private Sub bbuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bbuscar.Click
        Me.tnocredencial.Text = Me.cselecciondelcliente.SelectedValue
    End Sub

    Private Sub bsalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bsalir.Click
        Me.Close()
    End Sub
End Class

13
VB .NET / Re: Búsqueda de registro.
« en: Miércoles 16 de Septiembre de 2009, 06:00 »
Holadlplenin, te agradezco tu atención y ayuda a mi duda, lo probaré y te avisaré de los resultados, gracias y estamos colaborando en el foro, saludos.

14
VB .NET / Búsqueda de registro.
« en: Lunes 14 de Septiembre de 2009, 03:29 »
Hola amigos de solocodigo, tengo esta duda, espero me puedan ayudar a resolverla: tengo un formulario de búsquedas, el cual consta de un combobox(cselecciondelcliente), una caja de texto(tnocredencial) y un botón de buscar(bbuscar), al darle clic a la flechita del combobox me muestra una lista de todos los usuarios que se encuentran registrados en una tabla llamada registrodeclientes, hasta allí el programa funciona de manera correcta.

El código que yo necesito es que cuando yo seleccione un nombre y le de clic al botón de buscar me muestre en la caja de texto su número de credencial, utilizo visual basic 2005 edición express y mysql, estos son los valores de los campos: Apellido_paterno, Apellido_materno y Nombres todos varchar(20) y No_credencial int(10) clave primaria.

Este es el código que utilizo en el formulario (como pueden ver los apellidos y el nombre del usuario los tengo concatenados):

Imports MySql.Data.MySqlClient
Imports System.Data

Public Class busquedadeclientes
    Dim con As New MySqlConnection()
    Dim da As New MySqlDataAdapter()
    Dim ds As New DataSet()
    Dim dr As DataRow

    Private Sub busquedadeclientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim I As Integer
        con = New MySqlConnection("server=xxx;database=xxx;uid=xxx;pwd=xxx;")
        da = New MySqlDataAdapter("select concat(Apellido_paterno,' ', Apellido_materno,' ', Nombres) as na from registrodeclientes order by Apellido_paterno asc;", con)
        da.Fill(ds, "registrodeclientes")
        If ds.Tables("registrodeclientes").Rows.Count > 0 Then
            For I = 0 To ds.Tables("registrodeclientes").Rows.Count - 1
                dr = ds.Tables("registrodeclientes").Rows(I)
                cselecciondelcliente.Items.Add(dr("na"))
            Next
        End If
    End Sub

    Private Sub bbuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bbuscar.Click

    End Sub

    Private Sub bsalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bsalir.Click
        Me.Close()
    End Sub
End Class

Espero y me puedan ayudar, gracias.

15
VB .NET / Re: bd en vb.net con mysql y acces
« en: Lunes 14 de Septiembre de 2009, 00:08 »
Hola chispin, este un sistemita de un control de inventarios en una forma de clientes, todo está basado en visual basic 2005 express y mysql, aquí podrás ver como se almacenan registros en las tablas de datos y como puedes hacer búsquedas de las mismas, espero te sea de utilidad:

Imports MySql.Data.MySqlClient
Imports System.Data

Public Class clientes
    Dim con As New MySqlConnection
    Dim cnn1 As New MySqlDataAdapter
    Dim ds1 As New DataSet
    Dim fila As DataRow
    Dim sinc As New MySqlCommandBuilder
    Dim col1(0) As DataColumn

    Private Sub clientes_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        con = New MySqlConnection("server=xx;database=xx;uid=xx;pwd=xx") 'aquí tienes que poner los datos a los que te conectas tu.
        cnn1 = New MySqlDataAdapter("select * from clientes;", con)
        cnn1.Fill(ds1, "clientes")
        col1(0) = ds1.Tables("clientes").Columns("Clave")
        ds1.Tables("clientes").PrimaryKey = col1
        sinc = New MySqlCommandBuilder(cnn1)
    End Sub

    Private Sub bguardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bguardar.Click
        Dim n As String
        Dim n2 As Integer
        If ds1.Tables("clientes").Rows.Count > 0 Then
            fila = ds1.Tables("clientes").Rows(ds1.Tables("clientes").Rows.Count - 1)
            n = Mid$(fila("Clave"), 2, 3)
            n2 = Val(n) + 1
            Select Case Len(CStr(n2))
                Case 1 : tclave.Text = "C00" & CStr(n2)
                Case 2 : tclave.Text = "C0" & CStr(n2)
                Case 3 : tclave.Text = "C" & CStr(n2)
            End Select
        Else
            tclave.Text = "C001"
        End If
        fila = ds1.Tables("clientes").NewRow
        fila("Clave") = tclave.Text
        fila("Nombres") = tnombres.Text
        fila("Apellido_paterno") = tapellidopaterno.Text
        fila("Apellido_materno") = tapellidomaterno.Text
        fila("Calle") = tcalle.Text
        fila("Colonia") = tcolonia.Text
        fila("Ciudad") = tciudad.Text
        fila("Estado") = testado.Text
        fila("Codigo_postal") = tcodigopostal.Text
        fila("RFC") = trfc.Text
        fila("Telefono") = ttelefono.Text
        fila("Telefono_celular") = ttelefonocelular.Text
        fila("Fax") = tfax.Text
        fila("E_mail") = temail.Text
        fila("Contacto") = tcontacto.Text
        ds1.Tables("clientes").Rows.Add(fila)
        cnn1.Update(ds1, "clientes")
        ds1.AcceptChanges()
        tnombres.Enabled = False
        tapellidopaterno.Enabled = False
        tapellidomaterno.Enabled = False
        tcalle.Enabled = False
        tcolonia.Enabled = False
        tciudad.Enabled = False
        testado.Enabled = False
        tcodigopostal.Enabled = False
        trfc.Enabled = False
        ttelefono.Enabled = False
        ttelefonocelular.Enabled = False
        tfax.Enabled = False
        temail.Enabled = False
        tcontacto.Enabled = False
        bnuevo.Enabled = True
        bguardar.Enabled = False
        bbuscar.Enabled = True
        bmodificar.Enabled = True
        bguardarmodificacion.Enabled = False
        beliminar.Enabled = False
        bcancelar.Enabled = False
        bimprimir.Enabled = True
        bayuda.Enabled = True
    End Sub

    Private Sub bbuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bbuscar.Click
        Dim b As String
        b = InputBox("Introduzca la clave del cliente que desea buscar", "Búsqueda de clientes.")
        fila = ds1.Tables("clientes").Rows.Find(b)
        If fila Is Nothing Then
            MsgBox("El cliente no existe.", MsgBoxStyle.Information, "Búsqueda de clientes.")
            bnuevo.Enabled = True
            bguardar.Enabled = False
            bbuscar.Enabled = True
            bmodificar.Enabled = False
            bguardarmodificacion.Enabled = False
            beliminar.Enabled = False
            bcancelar.Enabled = False
            bimprimir.Enabled = False
            bayuda.Enabled = True
        Else
            tclave.Text = fila("Clave")
            tnombres.Text = fila("Nombres")
            tapellidopaterno.Text = fila("Apellido_paterno")
            tapellidomaterno.Text = fila("Apellido_materno")
            tcalle.Text = fila("Calle")
            tcolonia.Text = fila("Colonia")
            tciudad.Text = fila("Ciudad")
            testado.Text = fila("Estado")
            tcodigopostal.Text = fila("Codigo_postal")
            trfc.Text = fila("RFC")
            ttelefono.Text = fila("Telefono")
            ttelefonocelular.Text = fila("Telefono_celular")
            tfax.Text = fila("Fax")
            temail.Text = fila("E_mail")
            tcontacto.Text = fila("Contacto")
            'Habilita y deshabilita los botones correspondientes.
            bnuevo.Enabled = False
            bguardar.Enabled = False
            bbuscar.Enabled = True
            bmodificar.Enabled = True
            bguardarmodificacion.Enabled = False
            beliminar.Enabled = True
            bcancelar.Enabled = True
            bimprimir.Enabled = True
            bayuda.Enabled = True
        End If
    End Sub
End Class

16
VB .NET / Re: UTILIZAR EL TOOLBAR
« en: Domingo 13 de Septiembre de 2009, 23:50 »
Hola ems_oviedo, mira, este es un código en el que utilicé el toolbar, está compuesto de 3 botones que son nuevo, guardar e imprimir, espero te sea de utilidad:

    Private Sub tbotones_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles tbotones.ButtonClick
        Select Case tbotones.Buttons.IndexOf(e.Button)
            Case 0
                tnombre.Enabled = True
                tpaterno.Enabled = True
                tmaterno.Enabled = True
                rm.Enabled = True
                rf.Enabled = True
                dnacimiento.Enabled = True
                tedad.Enabled = True
                tcurp.Enabled = True
                tgrado.Enabled = True
                tgrupo.Enabled = True
                cnacimiento.Enabled = True
                cnacimiento.Checked = False
                cprimaria.Enabled = True
                cprimaria.Checked = False
                cfotografias.Enabled = True
                cfotografias.Checked = False
                cconducta.Enabled = True
                cconducta.Checked = False
                csalud.Enabled = True
                csalud.Checked = False
                cparcial.Enabled = True
                cparcial.Checked = False
                tcalle.Enabled = True
                tcolonia.Enabled = True
                tnumero.Enabled = True
                tdelegacion.Enabled = True
                tmunicipio.Enabled = True
                testado.Enabled = True
                tcodigopostal.Enabled = True
                tprocedencia.Enabled = True
                tpadre.Enabled = True
                tparticular.Enabled = True
                tmovil.Enabled = True
                toficina.Enabled = True
                temail.Enabled = True
                tsanguineo.Enabled = True
                tmedico.Enabled = True
                tafiliacion.Enabled = True
                rsi.Enabled = True
                rno.Enabled = True
                tenfermedad.Enabled = True
                borrarcajas()
                tnombre.Focus()
                bnuevo.Enabled = False
                bguardar.Enabled = True
                bimprimir.Enabled = True
            Case 1
                Dim I As Integer
                Dim nc As String
                'Validar Datos.
                If tnombre.Text = "" Then
                    MsgBox("Es necesario que ingreses el nombre del alumno.", MsgBoxStyle.Information, "Operación Cancelada")
                    Exit Sub
                End If
                'Calcula la clave a asignar.
                If dsalumnos.Tables("matriculas").Rows.Count > 0 Then
                    finv = dsalumnos.Tables("matriculas").Rows(dsalumnos.Tables("matriculas").Rows.Count - 1)
                    nc = Format(Val(Mid$(finv("matricula"), 3, 3)) + 1, "000")
                    tmatricula.Text = Mid$(DateTime.Now.Year.ToString(), 3, 2) & nc
                Else
                    tmatricula.Text = Mid$(DateTime.Now.Year.ToString(), 3, 2) & "001"
                End If
                finv = dsalumnos.Tables("matriculas").NewRow
                finv("matricula") = tmatricula.Text
                finv("nombre") = tnombre.Text
                finv("paterno") = tpaterno.Text
                finv("materno") = tmaterno.Text
                If rm.Checked = True Then finv("sexo") = 1 Else finv("sexo") = 2
                finv("nacimiento") = dnacimiento.Text
                finv("edad") = Val(tedad.Text)
                finv("curp") = tcurp.Text
                finv("grado") = Val(tgrado.Text)
                finv("grupo") = tgrupo.Text
                If cnacimiento.Checked = True Then finv("documento1") = 1 Else finv("documento1") = 0
                If cprimaria.Checked = True Then finv("documento2") = 1 Else finv("documento2") = 0
                If cfotografias.Checked = True Then finv("documento3") = 1 Else finv("documento3") = 0
                If cconducta.Checked = True Then finv("documento4") = 1 Else finv("documento4") = 0
                If csalud.Checked = True Then finv("documento5") = 1 Else finv("documento5") = 0
                If cparcial.Checked = True Then finv("documento6") = 1 Else finv("documento6") = 0
                finv("calle") = tcalle.Text
                finv("colonia") = tcolonia.Text
                finv("numero") = tnumero.Text
                finv("delegacion") = tdelegacion.Text
                finv("municipio") = tmunicipio.Text
                finv("estado") = testado.Text
                finv("codigopostal") = Val(tcodigopostal.Text)
                finv("procedencia") = tprocedencia.Text
                finv("padre") = tpadre.Text
                finv("particular") = tparticular.Text
                finv("movil") = tmovil.Text
                finv("oficina") = toficina.Text
                finv("email") = temail.Text
                finv("sanguineo") = tsanguineo.Text
                finv("medico") = tmedico.Text
                finv("afiliacion") = Val(tafiliacion.Text)
                If rsi.Checked = True Then finv("padecimiento") = 1 Else finv("padecimiento") = 2
                finv("enfermedad") = tenfermedad.Text
                dsalumnos.Tables("matriculas").Rows.Add(finv)
                tnombre.Enabled = False
                tpaterno.Enabled = False
                tmaterno.Enabled = False
                rm.Enabled = False
                rf.Enabled = False
                dnacimiento.Enabled = False
                tedad.Enabled = False
                tcurp.Enabled = False
                tgrado.Enabled = False
                tgrupo.Enabled = False
                cnacimiento.Enabled = False
                cprimaria.Enabled = False
                cfotografias.Enabled = False
                cconducta.Enabled = False
                csalud.Enabled = False
                cparcial.Enabled = False
                tcalle.Enabled = False
                tcolonia.Enabled = False
                tnumero.Enabled = False
                tdelegacion.Enabled = False
                tmunicipio.Enabled = False
                testado.Enabled = False
                tcodigopostal.Enabled = False
                tprocedencia.Enabled = False
                tpadre.Enabled = False
                tparticular.Enabled = False
                tmovil.Enabled = False
                toficina.Enabled = False
                temail.Enabled = False
                tsanguineo.Enabled = False
                tmedico.Enabled = False
                tafiliacion.Enabled = False
                rsi.Enabled = False
                rno.Enabled = False
                tenfermedad.Enabled = False
                bnuevo.Enabled = True
                bguardar.Enabled = False
                bimprimir.Enabled = True
                cnalumnos.Update(dsalumnos.Tables("matriculas"))
                dsalumnos.Tables("matriculas").AcceptChanges()
                cncalif = New MySqlDataAdapter("select * from calificaciones where matricula='" & tmatricula.Text & "';", con1)
                cncalif.Fill(dscalif, "calificaciones")
                sinc2 = New MySqlCommandBuilder(cncalif)
                Try
                    dsplan.Clear()
                Catch
                End Try
                cnplan = New MySqlDataAdapter("select * from planestudios;", con1)
                cnplan.Fill(dsplan, "planestudios")
                If dsplan.Tables("planestudios").Rows.Count > 0 Then
                    For I = 0 To dsplan.Tables("planestudios").Rows.Count - 1
                        fplan = dsplan.Tables("planestudios").Rows(I)
                        fcalif = dscalif.Tables("calificaciones").NewRow()
                        fcalif("matricula") = tmatricula.Text
                        fcalif("clavemat") = fplan("clavemat")
                        fcalif("materia") = fplan("materia")
                        fcalif("grado") = fplan("grado")
                        dscalif.Tables("calificaciones").Rows.Add(fcalif)
                    Next
                    cncalif.Update(dscalif.Tables("calificaciones"))
                    dscalif.AcceptChanges()
                End If
            Case 2
                rep1 = New crinscripciones()
                rep1.SetDataSource(dsalumnos.Tables("matriculas"))
                Dim frep As New reportes()
                frep.Show()
        End Select
    End Sub

Te recomiendo que programes en una versión 2005 ó versión 2008, donde ya tienes una opción de toolstrip, en la cual cada botón depende de sí mismo, su código es de manera individual, espero te ayude.

17
VB .NET / Re: Como usar crystal reports!
« en: Domingo 13 de Septiembre de 2009, 23:29 »
Hola foru, mira, lo primero que tienes que hacer es declarar un módulo como una variable global, es decir, agrega un módulo y ponle el nombre que gustes, por ejemplo globales.vb ya que serán variables que te servirán para todos los proyectos de reportes, ¿ok?, después de eso da doble clic a ese módulo y escribe el siguiente código:

Imports CrystalDecisions.CrystalReports.Engine.ReportDocument
Module Globales
    Public rep As New CrystalDecisions.CrystalReports.Engine.ReportDocument()
End Module

A continuación vamos a agregar un formulario nuevo en nuestro proyecto, te suguiero que le pongas de nombre reportes.vb para que lo tengas identificado ó el que gustes, dentro de este formulario ve al cuadro de herramientas y arrastra la herramienta de CrystalReportViewer1 y agrega el siguiente código:

Public Class reportes
    Inherits System.Windows.Forms.Form

    Private Sub CrystalReportViewer1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CrystalReportViewer1.Load
        CrystalReportViewer1.ReportSource = rep
    End Sub
End Class
 
Ahora lo que tenemos que hacer es agregar un dataset, el cual va a contener los datos que tengas en tus bases de datos, vamos a manejar el siguiente ejemplo, supongamos que tenemos una tabla llamada clientes vamos a agregar a nuestro proyecto un formulario Conjunto de datos al cual le pondremos de nombre dsclientes.xsd, cuando nos abra ese formulario, del cuadro de herramientas vamos a seleccionar la opción Data Table y la arrastramos en el formulario, damos un clic en el encabezado y de título le vamos a poner el nombre de la tabla que vamos a agregar, por ejemplo clientes, damos clic derecho y agragamos el número de campos que tienes nuestra tabla, por ejemplo, nombre, direccion telefono, tal cual los tenemos en la tabla de clientes, en el campo que sea la clave principaldamos clic derecho y agregamos la clave principal, damos clic a lo que te diga, ahora de nuesto lado derecho tenemos que configurar el tipo de dato dentro de cada uno de esos campos, es decir, si son string, double, int32, char, etc, eso depende de tos campos, así como si son valores nulos, etc.

Ok, después de hacer todo esto, vamos a agregar un Crystal Reports al cual vamos a llamar crclientes.rpt, en la parte izquierda superior de ese formulario, vamos a ver campos de bases de datos, damos clic derecho y asistente de bases de datos, abrimos la carpeta datos del proyecto, abrimos la carpeta ADO.NET DataSets, seleccionamos el dataset que necesitamos en tal caso y lo agregamos a las tablas seleccionadas, ahora en la parte superior izquierda en campos de bases de datos ya nos aparece el nombre de nuestro dataset abrimos el campo del signo de más y arrastramos los campos dentro de la sección 3 detalles, ta apareceran dos campos iguales uno con el identificador encabezado de campo y el otro contendrá el valor de la tabla de clientes, tu los ordenarás y le darás el formato que gustes y los acomodarás en la sección que gustes, ese será tu estilo.

Bueno, en nuestro formulario de clientes debemos de tener un botón de imprimir, en el damos doble clic y agregamos el siguiente código:

Private Sub limprimir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles limprimir.Click
        rep = New crclientes
        rep.SetDataSource(ds.Tables("clientes"))
        Dim freportes As New reportes
        freportes.Show()
End Sub

Si tu formulario principal es un MdiContainers deja el código del botón de imprimir tal cual te lo puse, si no es MdiContainers elimina las últimas dos líneas de código, espero sea de utilidad este pequeño tutorial, de cualquier forma sigue escribiendo tus dudas, yo checaré este sunto más adelante, gracias.

18
VB .NET / Re: Actualizar datos de datagrid con visual basic 2005 y mysql.
« en: Domingo 13 de Septiembre de 2009, 22:30 »
Hola amigos de solocodigo.com, después de intentar varios códigos hé encontrado la solución a la duda que tenía sobre como modificar los registros de un datagrid y guardarlos en su respectiva base de datos, el código sólo tenía un par de líneas de código incorrecto, así que sólo les pongo el código de guardar modificación, espero les sea de utilidad:

    Private Sub lguardarmodificacion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lguardarmodificacion.Click
        Dim cnrm As New MySqlDataAdapter
        Dim cnrd As New MySqlDataAdapter
        Dim dsrentas As New DataSet
        Dim filarentas As DataRow
        Dim sincrentas As New MySqlCommandBuilder
        Dim comrentas As New MySqlCommand
        cnrm = New MySqlDataAdapter("select * from rentadepeliculas_maestro where folio=" & tfolio.Text & " order by Folio;", con)
        cnrm.Fill(dsrentas, "rentadepeliculas_maestro")
        sincrentas = New MySqlCommandBuilder(cnrm)
        filarentas = dsrentas.Tables("rentadepeliculas_maestro").Rows(0)
        filarentas.BeginEdit()
        filarentas("No_credencial") = tnocredencial.Text
        filarentas("Folio") = tfolio.Text
        filarentas("Fecha") = dfecha.Text
        filarentas("Nombre") = tnombre.Text
        filarentas("Direccion") = tdireccion.Text
        filarentas("Telefono") = ttelefono.Text
        filarentas("Cantidad_letra") = tcantidadconletra.Text
        filarentas("Subtotal") = Val(tsubtotal.Text)
        filarentas("Iva") = Val(tiva.Text)
        filarentas("Total") = Val(ttotal.Text)
        filarentas.EndEdit()
        cnrm.Update(dsrentas.Tables("rentadepeliculas_maestro"))
        dsrentas.AcceptChanges()
        cnrd = New MySqlDataAdapter("select * from rentadepeliculas_detalle where folio=" & tfolio.Text & " order by Num;", con)
        cnrd.Fill(dsrentas, "rentadepeliculas_detalle")
        sincrentas = New MySqlCommandBuilder(cnrd)
        For i As Integer = 0 To DataGridView1.Rows.Count - 1
            If DataGridView1.Rows(i).Cells(1).Value <> "" Then
                filarentas = dsrentas.Tables("rentadepeliculas_detalle").Rows(i)
                filarentas.BeginEdit()
                filarentas("Folio") = tfolio.Text
                filarentas("Ean") = DataGridView1.Rows(i).Cells(0).Value
                filarentas("Titulo") = DataGridView1.Rows(i).Cells(1).Value
                filarentas("Formato") = DataGridView1.Rows(i).Cells(2).Value
                filarentas("Contenido") = CDbl(DataGridView1.Rows(i).Cells(3).Value)
                filarentas("Precio") = CDbl(DataGridView1.Rows(i).Cells(4).Value)
                filarentas("Copias") = CDbl(DataGridView1.Rows(i).Cells(5).Value)
                filarentas("Importe") = CDbl(DataGridView1.Rows(i).Cells(6).Value)
                filarentas.EndEdit()
                cnrd.Update(dsrentas.Tables("rentadepeliculas_detalle"))
                dsrentas.AcceptChanges()
            End If
        Next
        deshabilitarcajas()
        lnuevo.Enabled = True
        lguardar.Enabled = False
        limprimir.Enabled = True
        lbuscar.Enabled = True
        lmodificar.Enabled = True
        lguardarmodificacion.Enabled = False
        leliminar.Enabled = False
        lcancelar.Enabled = False
    End Sub

19
VB .NET / Actualizar datos de datagrid con visual basic 2005 y mysql.
« en: Lunes 7 de Septiembre de 2009, 06:12 »
Hola amigos de solocodigo, espero me puedan ayudar con la siguiente duda:
Estoy haciendo un sistema de control de inventario de un videoclub en visual basic 2005 y mysql, mis registros los guarda a la perfección pero si yo quiero modificar esos datos y doy clic al botón guardar modificación no me permite hacerlo, allí dejé mi código de guardar modificación en comentarios, espero me puedan ayudar a formular el código correcto, gracias.

Imports MySql.Data.MySqlClient
Imports System.Data

Public Class rentadepeliculas
    Dim con As New MySqlConnection
    Dim ds As New DataSet
    Private Sub borrarcajas()
        tnocredencial.Text = ""
        tfolio.Text = ""
        dfecha.Value = Date.Now
        tnombre.Text = ""
        tdireccion.Text = ""
        ttelefono.Text = ""
        DataGridView1.Rows.Clear()
        DataGridView1.Rows.Add(10)
        tcantidadconletra.Text = ""
        tsubtotal.Text = ""
        tiva.Text = ""
        ttotal.Text = ""
    End Sub
    Private Sub habilitarcajas()
        tnocredencial.Enabled = True
        dfecha.Enabled = True
        DataGridView1.Enabled = True
    End Sub
    Private Sub deshabilitarcajas()
        tnocredencial.Enabled = False
        dfecha.Enabled = True
        DataGridView1.Enabled = False
    End Sub

    Private Sub rentadepeliculas_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        con = New MySqlConnection("server=X;database=bdX;uid=X;pwd=XXXXX")
        con.Open()
        DataGridView1.Rows.Add(10)
    End Sub

    Private Sub lguardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lguardar.Click
        Dim cnrm As New MySqlDataAdapter
        Dim cnrd As New MySqlDataAdapter
        Dim dsrentas As New DataSet
        Dim filarentas As DataRow
        Dim sincrentas As New MySqlCommandBuilder
        Dim comrentas As New MySqlCommand
        cnrm = New MySqlDataAdapter("select * from rentadepeliculas_maestro order by Folio;", con)
        cnrm.Fill(dsrentas, "rentadepeliculas_maestro")
        sincrentas = New MySqlCommandBuilder(cnrm)
        If tnocredencial.Text = "" Then
            MsgBox("Es necesario que ingrese el número de credencial.", MsgBoxStyle.Information, "Operación cancelada.")
            Exit Sub
        End If
        For i As Integer = 0 To DataGridView1.Rows.Count - 1
            If DataGridView1.Rows(i).Cells(0).Value = "" And DataGridView1.Rows(i).Cells(4).Value = "" And DataGridView1.Rows(i).Cells(5).Value = "" And tcantidadconletra.Text = "" And tsubtotal.Text = "" And tiva.Text = "" And ttotal.Text = "" Then
                MsgBox("No puede realizar un registro de renta con campos en blanco.", MsgBoxStyle.Information, "Operación cancelada.")
                Exit Sub
            End If
        Next
        If dsrentas.Tables("rentadepeliculas_maestro").Rows.Count > 0 Then
            filarentas = dsrentas.Tables("rentadepeliculas_maestro").Rows(dsrentas.Tables("rentadepeliculas_maestro").Rows.Count - 1)
            tfolio.Text = Val(filarentas("Folio")) + 1
        Else
            tfolio.Text = "1"
        End If
        filarentas = dsrentas.Tables("rentadepeliculas_maestro").NewRow
        filarentas("No_credencial") = tnocredencial.Text
        filarentas("Folio") = tfolio.Text
        filarentas("Fecha") = dfecha.Text
        filarentas("Nombre") = tnombre.Text
        filarentas("Direccion") = tdireccion.Text
        filarentas("Telefono") = ttelefono.Text
        filarentas("Cantidad_letra") = tcantidadconletra.Text
        filarentas("Subtotal") = Val(tsubtotal.Text)
        filarentas("Iva") = Val(tiva.Text)
        filarentas("Total") = Val(ttotal.Text)
        dsrentas.Tables("rentadepeliculas_maestro").Rows.Add(filarentas)
        cnrm.Update(dsrentas.Tables("rentadepeliculas_maestro"))
        dsrentas.AcceptChanges()
        cnrd = New MySqlDataAdapter("select * from rentadepeliculas_detalle order by Num;", con)
        cnrd.Fill(dsrentas, "rentadepeliculas_detalle")
        sincrentas = New MySqlCommandBuilder(cnrd)
        For i As Integer = 0 To DataGridView1.Rows.Count - 1
            If DataGridView1.Rows(i).Cells(1).Value <> "" Then
                filarentas = dsrentas.Tables("rentadepeliculas_detalle").NewRow
                filarentas("Folio") = tfolio.Text
                filarentas("Ean") = DataGridView1.Rows(i).Cells(0).Value
                filarentas("Titulo") = DataGridView1.Rows(i).Cells(1).Value
                filarentas("Formato") = DataGridView1.Rows(i).Cells(2).Value
                filarentas("Contenido") = CDbl(DataGridView1.Rows(i).Cells(3).Value)
                filarentas("Precio") = CDbl(DataGridView1.Rows(i).Cells(4).Value)
                filarentas("Copias") = CDbl(DataGridView1.Rows(i).Cells(5).Value)
                filarentas("Importe") = CDbl(DataGridView1.Rows(i).Cells(6).Value)
                dsrentas.Tables("rentadepeliculas_detalle").Rows.Add(filarentas)
                cnrd.Update(dsrentas.Tables("rentadepeliculas_detalle"))
                dsrentas.AcceptChanges()
            End If
        Next
        deshabilitarcajas()
        lnuevo.Enabled = True
        lguardar.Enabled = False
        limprimir.Enabled = True
        lbuscar.Enabled = True
        lmodificar.Enabled = True
        lguardarmodificacion.Enabled = False
        leliminar.Enabled = False
        lcancelar.Enabled = False
    End Sub

    Private Sub lbuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbuscar.Click
        Dim cnrentas As New MySqlDataAdapter
        Dim dsrent As New DataSet
        Dim filarent As DataRow
        Dim x As String
        x = InputBox("Introduzca el número de folio que desea buscar.")
        If x = "" Then Exit Sub
        cnrentas = New MySqlDataAdapter("select * from rentadepeliculas_maestro where Folio = " & x & ";", con)
        cnrentas.Fill(dsrent, "rentadepeliculas_maestro")
        If dsrent.Tables("rentadepeliculas_maestro").Rows.Count > 0 Then
            filarent = dsrent.Tables("rentadepeliculas_maestro").Rows(0)
            tnocredencial.Text = filarent("No_credencial")
            tfolio.Text = filarent("Folio")
            dfecha.Text = filarent("Fecha")
            tnombre.Text = filarent("Nombre")
            tdireccion.Text = filarent("Direccion")
            ttelefono.Text = filarent("Telefono")
            tcantidadconletra.Text = filarent("Cantidad_letra")
            tsubtotal.Text = filarent("Subtotal")
            tiva.Text = filarent("Iva")
            ttotal.Text = filarent("Total")
        Else
            MsgBox("Folio no encontrado.", MsgBoxStyle.Information, "Operación cancelada.")
            borrarcajas()
            lnuevo.Enabled = True
            lguardar.Enabled = False
            limprimir.Enabled = False
            lbuscar.Enabled = True
            lmodificar.Enabled = False
            lguardarmodificacion.Enabled = False
            leliminar.Enabled = False
            lcancelar.Enabled = False
            Exit Sub
            dsrent.Clear()
            dsrent.Dispose()
            cnrentas.Dispose()
        End If
        DataGridView1.Rows.Clear()
        DataGridView1.Rows.Add(10)
        cnrentas = New MySqlDataAdapter("select * from rentadepeliculas_detalle where Folio =" & x & ";", con)
        cnrentas.Fill(dsrent, "rentadepeliculas_detalle")
        If dsrent.Tables("rentadepeliculas_detalle").Rows.Count > 0 Then
            For i As Integer = 0 To dsrent.Tables("rentadepeliculas_detalle").Rows.Count - 1
                filarent = dsrent.Tables("rentadepeliculas_detalle").Rows(i)
                DataGridView1.Rows(i).Cells(0).Value = filarent("Ean")
                DataGridView1.Rows(i).Cells(1).Value = filarent("Titulo")
                DataGridView1.Rows(i).Cells(2).Value = filarent("Formato")
                DataGridView1.Rows(i).Cells(3).Value = filarent("Contenido")
                DataGridView1.Rows(i).Cells(4).Value = filarent("Precio")
                DataGridView1.Rows(i).Cells(5).Value = filarent("Copias")
                DataGridView1.Rows(i).Cells(6).Value = filarent("Importe")
                lnuevo.Enabled = False
                lguardar.Enabled = False
                limprimir.Enabled = True
                lbuscar.Enabled = True
                lmodificar.Enabled = True
                lguardarmodificacion.Enabled = False
                leliminar.Enabled = True
                lcancelar.Enabled = True
            Next
        End If
        dsrent.Clear()
        dsrent.Dispose()
        cnrentas.Dispose()
    End Sub

    Private Sub lmodificar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lmodificar.Click
        habilitarcajas()
        tnocredencial.Focus()
        lnuevo.Enabled = False
        lguardar.Enabled = False
        limprimir.Enabled = False
        lbuscar.Enabled = False
        lmodificar.Enabled = False
        lguardarmodificacion.Enabled = True
        leliminar.Enabled = False
        lcancelar.Enabled = True
    End Sub

    Private Sub lguardarmodificacion_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lguardarmodificacion.Click
        'Dim cnrm As New MySqlDataAdapter
        'Dim cnrd As New MySqlDataAdapter
        'Dim dsrentas As New DataSet
        'Dim filarentas As DataRow
        'Dim sincrentas As New MySqlCommandBuilder
        'Dim comrentas As New MySqlCommand
        'cnrm = New MySqlDataAdapter("select * from rentadepeliculas_maestro order by Folio;", con)
        'cnrm.Fill(dsrentas, "rentadepeliculas_maestro")
        'sincrentas = New MySqlCommandBuilder(cnrm)
        'filarentas = dsrentas.Tables("rentadepeliculas_maestro").NewRow
        'filarentas.BeginEdit()
        'filarentas("No_credencial") = tnocredencial.Text
        'filarentas("Folio") = tfolio.Text
        'filarentas("Fecha") = dfecha.Text
        'filarentas("Nombre") = tnombre.Text
        'filarentas("Direccion") = tdireccion.Text
        'filarentas("Telefono") = ttelefono.Text
        'filarentas("Cantidad_letra") = tcantidadconletra.Text
        'filarentas("Subtotal") = Val(tsubtotal.Text)
        'filarentas("Iva") = Val(tiva.Text)
        'filarentas("Total") = Val(ttotal.Text)
        'filarentas.EndEdit()
        'cnrm.Update(dsrentas.Tables("rentadepeliculas_maestro"))
        'dsrentas.AcceptChanges()
        'cnrd = New MySqlDataAdapter("select * from rentadepeliculas_detalle order by Num;", con)
        'cnrd.Fill(dsrentas, "rentadepeliculas_detalle")
        'sincrentas = New MySqlCommandBuilder(cnrd)
        'For i As Integer = 0 To DataGridView1.Rows.Count - 1
        '    If DataGridView1.Rows(i).Cells(1).Value <> "" Then
        '        filarentas = dsrentas.Tables("rentadepeliculas_detalle").NewRow
        '        filarentas.BeginEdit()
        '        filarentas("Folio") = tfolio.Text
        '        filarentas("Ean") = DataGridView1.Rows(i).Cells(0).Value
        '        filarentas("Titulo") = DataGridView1.Rows(i).Cells(1).Value
        '        filarentas("Formato") = DataGridView1.Rows(i).Cells(2).Value
        '        filarentas("Contenido") = CDbl(DataGridView1.Rows(i).Cells(3).Value)
        '        filarentas("Precio") = CDbl(DataGridView1.Rows(i).Cells(4).Value)
        '        filarentas("Copias") = CDbl(DataGridView1.Rows(i).Cells(5).Value)
        '        filarentas("Importe") = CDbl(DataGridView1.Rows(i).Cells(6).Value)
        '        filarentas.EndEdit()
        '        cnrm.Update(dsrentas.Tables("rentadepeliculas_detalle"))
        '        dsrentas.AcceptChanges()
        '    End If
        'Next
        'deshabilitarcajas()
        'lnuevo.Enabled = True
        'lguardar.Enabled = False
        'limprimir.Enabled = True
        'lbuscar.Enabled = True
        'lmodificar.Enabled = True
        'lguardarmodificacion.Enabled = False
        'leliminar.Enabled = False
        'lcancelar.Enabled = False
    End Sub

    Private Sub tnocredencial_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles tnocredencial.KeyPress
        Dim cncliente As New MySqlDataAdapter
        Dim dscliente As New DataSet
        Dim filacliente As DataRow
        ''If Asc(e.KeyChar) = Keys.Return Then
        If Asc(e.KeyChar) = 13 Then
            cncliente = New MySqlDataAdapter("select Nombres, Apellido_paterno, Apellido_materno, Colonia, Calle, Ciudad, Telefono from registrodeclientes where No_credencial='" & tnocredencial.Text & "';", con)
            cncliente.Fill(dscliente, "registrodeclientes")
            If dscliente.Tables("registrodeclientes").Rows.Count > 0 Then
                filacliente = dscliente.Tables("registrodeclientes").Rows(0)
                tnombre.Text = filacliente("Nombres") & " " & filacliente("Apellido_paterno") & " " & filacliente("Apellido_materno")
                tdireccion.Text = filacliente("Colonia") & " " & filacliente("Calle") & " " & filacliente("Ciudad")
                ttelefono.Text = filacliente("Telefono")
            Else
                MsgBox("Cliente no encontrado.", MsgBoxStyle.Information, "Búsqueda de clientes.")
                tnocredencial.Text = ""
                tnombre.Text = ""
                tdireccion.Text = ""
                ttelefono.Text = ""
            End If
            dscliente.Clear()
            dscliente.Dispose()
            cncliente.Dispose()
            'dscliente.Tables("registrodeclientes").Clear()
        End If
    End Sub

    Private Sub DataGridView1_CellEndEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
        Dim cnpel As New MySqlDataAdapter
        Dim dspel As New DataSet
        Dim filapel As DataRow
        Dim ean As String
        Dim precio As Double
        Dim copias As Double
        Dim vsubt As Double = 0
        Dim vean As String = ""
        Dim vlinea As Integer
        Select Case e.ColumnIndex
            Case 0
                vean = DataGridView1.CurrentCell.Value
                vlinea = DataGridView1.CurrentRow.Index
                For i As Integer = 0 To DataGridView1.Rows.Count - 1
                    If vean = DataGridView1.Rows(i).Cells(0).Value And i <> vlinea Then
                        MsgBox("No puede introducir un mismo ean.", MsgBoxStyle.Information, "Operación cancelada.")
                        DataGridView1.CurrentCell.Value = ""
                        SendKeys.Send("{up}")
                        Exit Sub
                    End If
                Next
                ean = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(0).Value
                cnpel = New MySqlDataAdapter("select Titulo, Formato, Contenido from registrodepeliculas where Ean='" & ean & "';", con)
                cnpel.Fill(dspel, "regpeliculas")
                If dspel.Tables("regpeliculas").Rows.Count > 0 Then
                    filapel = dspel.Tables("regpeliculas").Rows(0)
                    DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(1).Value = filapel("titulo")
                    DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(2).Value = filapel("formato")
                    DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(3).Value = filapel("contenido")
                Else
                    DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(1).Value = ""
                End If
                dspel.Clear()
                dspel.Dispose()
                cnpel.Dispose()
                SendKeys.Send("{up}")
                SendKeys.Send("{tab}")
                SendKeys.Send("{tab}")
                SendKeys.Send("{tab}")
                SendKeys.Send("{tab}")
            Case 4
                copias = CDbl(DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(4).Value)
                If copias > 0 Then
                    SendKeys.Send("{up}")
                    SendKeys.Send("{tab}")
                Else
                    SendKeys.Send("{up}")
                End If
            Case 5
                precio = CDbl(DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(4).Value)
                copias = CDbl(DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(5).Value)
                If precio > 0 And copias > 0 Then
                    DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(6).Value = precio * copias
                    For i As Integer = 0 To DataGridView1.Rows.Count - 1
                        vsubt = vsubt + CDbl(DataGridView1.Rows(i).Cells(6).Value)
                    Next
                    tsubtotal.Text = vsubt
                    tiva.Text = vsubt * 0.15
                    ttotal.Text = CDbl(tsubtotal.Text) + CDbl(tiva.Text)
                    SendKeys.Send("{up}")
                    SendKeys.Send("{tab}")
                    SendKeys.Send("{tab}")
                End If
        End Select
    End Sub
End Class

Páginas: [1]