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

Páginas: 1 [2]
21
Gracias, el problema en mi caso esq nunca habia programado en visual studio 2012, hasta q me dieron un proyecto que incluía bases de datos en access, para darles mantenimiento desde el programa q se suponía yo, alguien sin conocimiento en ese lenguaje tenia q hacer... acá en este foro e conseguido mucha ayuda se los agradezco mucho, y gracias por el tuto (Y)

22
Amigo gracais ya me funciona (Y) lo hize con la segunda forma y me sirvio xD jeje muchas gracias (Y) de verdad

Saludos !!!

23
Haciéndolo de la primera forma lo intente pero da este error:

No se controló InvalidCastException en la línea:

If Cod_puestoTextBox.Text And Nom_puestoTextBox.Text And Sal_nivel1TextBox.Text...

24
no esta definido como variable, lo que intento es decirle al programa-si todos los textbox tienen algo escrito, agréguelos al datagrid.. yo se que el error esta en esa linea pero no se cual es la forma correcta de decirlo, me puedes ayudar?

25
Parece, pero no :) sucede que esa parte es únicamente para que al agregar un registro nuevo, el cursor se posicione en el final del datagrid, de lo contrario siempre se posicionaría al principio porque tiene la linea de actualizar antes... Sim embargo eso si me funciona, ya confirme que el error esta en la primer linea del If al parecer debo indicar lo mismo que estoy intentando indicar ahi pero de otra manera.
Espero haberme explicado y aclarado la duda :)

Saludos !!

26
hola Yo otra vez con mis preguntas de Visual Basic 2012, esta vez tengo un problema con mi botón de agregar, tengo que decir que lo que quiero es hacerlo y como es lógico, que no haya cabida a errores, este es mi código:

Código: [Seleccionar]
''BOTON NUEVO REGISTRO''-----------------Error, solo envia el ultimo try
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        If Cod_puestoTextBox.Text = Text And Nom_puestoTextBox.Text = Text And Sal_nivel1TextBox.Text = Text And Sal_nivel2TextBox.Text = Text And Sal_nivel3TextBox.Text = Text And Sal_nivel4TextBox.Text = Text And Sal_nivel5TextBox.Text = Text Then
            Me.Esc_SalarialTableAdapter.Insertar(Cod_puestoTextBox.Text, Nom_puestoTextBox.Text, Sal_nivel1TextBox.Text, Sal_nivel2TextBox.Text, Sal_nivel3TextBox.Text, Sal_nivel4TextBox.Text, Sal_nivel5TextBox.Text)
   

        ElseIf Cod_puestoTextBox.Text = "" And Nom_puestoTextBox.Text = "" And Sal_nivel1TextBox.Text = "" And Sal_nivel2TextBox.Text = "" And Sal_nivel3TextBox.Text = "" And Sal_nivel4TextBox.Text = "" And Sal_nivel5TextBox.Text = "" Then
            Try
                Esc_SalarialDataGridView.Update()
                MsgBox("Debe insertar los datos requeridos.")
                Esc_SalarialTableAdapter.Dispose()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        Else
            Try
                Esc_SalarialDataGridView.Update()
                MsgBox("Inserte todos los datos.")
                Esc_SalarialTableAdapter.Dispose()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try

        End If
        Me.Esc_SalarialTableAdapter.Fill(Me.Database1DataSet.Esc_Salarial)

        Me.BindingContext(Esc_SalarialBindingSource).Position =
        Me.BindingContext(Esc_SalarialBindingSource).Count - 1
        Esc_SalarialDataGridView.Text = Me.BindingContext(Esc_SalarialBindingSource).Position

    End Sub

y lo que me acongoja esque a mi parecer esta bien pero obviamente no lo esta porque el programa no agrega, bueno, voy a explicar de forma simple cada parte del código para q me entiendan.
  Este es el primer IF que según yo, dice q si en todos los textbox hay textos(valga la redundancia) pues que los agregue a las columnas respectivas:

Código: [Seleccionar]
If Cod_puestoTextBox.Text = Text And Nom_puestoTextBox.Text = Text And Sal_nivel1TextBox.Text = Text And Sal_nivel2TextBox.Text = Text And Sal_nivel3TextBox.Text = Text And Sal_nivel4TextBox.Text = Text And Sal_nivel5TextBox.Text = Text Then
            Me.Esc_SalarialTableAdapter.Insertar(Cod_puestoTextBox.Text, Nom_puestoTextBox.Text, Sal_nivel1TextBox.Text, Sal_nivel2TextBox.Text, Sal_nivel3TextBox.Text, Sal_nivel4TextBox.Text, Sal_nivel5TextBox.Text)

  El siguiente es el primer Elseif, lo hize asi para solucionar el error que daba si usaba el botón sin agregar datos, lo que hace esque si no hay datos en ningún textbox envía un msj:

Código: [Seleccionar]
ElseIf Cod_puestoTextBox.Text = "" And Nom_puestoTextBox.Text = "" And Sal_nivel1TextBox.Text = "" And Sal_nivel2TextBox.Text = "" And Sal_nivel3TextBox.Text = "" And Sal_nivel4TextBox.Text = "" And Sal_nivel5TextBox.Text = "" Then
            Try
                Esc_SalarialDataGridView.Update()
                MsgBox("Debe insertar los datos requeridos.")
                Esc_SalarialTableAdapter.Dispose()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try

  Este es el Else (por cierto acá cierra el ciclo If), ya con los anteriores le e dicho al programa que debe hacer en caso de que tenga toda la información en los txtbox, y que hacer en caso que no le escriban nada; sin embargo da un error si se inserta texto en algún txtbox y nada en otros, evitar ese error es mi objetivo con este Else:

Código: [Seleccionar]
Else
            Try
                Esc_SalarialDataGridView.Update()
                MsgBox("Inserte todos los datos.")
                Esc_SalarialTableAdapter.Dispose()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try

        End If

  A mi parecer el programa debería interpretar esto de esta manera" si tengo todos los datos, los agrego al datagridview; si no tengo nada, entonces envío un msj, y si no se da el primer caso ni el segundo, pues hago el tercero q es enviar otro msj, porque si no es gallo es gallina"

No le e indicado al programa específicamente que haga el Else en caso que hayan algunos datos en txtsbox y en otros no, pero debería funcionar bien creo yo, pero no es asi, si yo pruebo el programa, y no agrego nada a los texbox al tocar el botn hace lo q deberia hacer, si lo pruebo de nuevo y agrego informacion en algun texbox y en otro(s) no; también hace lo q debe hacer...osea que el segundo y tercer caso funcionan bien, pero si agrego información a todos los textbox y toco el botón me tira el msj como si no estuviese agregando a todos, osea se da el tercer caso y eso no tiene sentido  :(

El resto de código que no explique es para actualizar y mantener la ultima posición, pero si funciona bien esa parte :)

Gracias por tomarse el tiempo de leer este tema y si me pueden ayudar lo agradecería mucho, espero haberme explicado bien

Saludos !!

27
por cierto aca esta el codigo xD seguro seguire instruyendome en estos foros asi que pondre mi dranito de arena
Código: [Seleccionar]
    ''BOTON ACTUALIZAR

    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click

        Dim record_actual As Integer

        record_actual = Esc_SalarialBindingSource.Position
        Me.Validate()
        Me.Esc_SalarialBindingSource.EndEdit()

        Me.Esc_SalarialTableAdapter.Update(Me.Database1DataSet.Esc_Salarial)
        Me.Esc_SalarialTableAdapter.Fill(Me.Database1DataSet.Esc_Salarial)
        Esc_SalarialBindingSource.Position = record_actual

    End Sub

28
Voy a dejar por aca este código que con una idea de Mastermind me ha funcionado, la sintaxis es de Visual Basic 2012 así que no sé si funcione  tan bien en otras versiones pero por si acaso le llega a servir a alguien el objetivo se esta cumplido por aca lo dejo (Y)

Código: [Seleccionar]
    ''BOTON ACTUALIZAR guarda en base de datos y mantienen posición en datagridview

    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click

        Dim record_actual As Integer

        record_actual = Esc_SalarialBindingSource.Position
        Me.Validate()
        Me.Esc_SalarialBindingSource.EndEdit()

        Me.Esc_SalarialTableAdapter.Update(Me.Database1DataSet.Esc_Salarial)
        Me.Esc_SalarialTableAdapter.Fill(Me.Database1DataSet.Esc_Salarial)
        Esc_SalarialBindingSource.Position = record_actual

    End Sub

29
jeje me costo pero tome la idea que me diste y lo acople de forma que me funcionara bien, gracias amigo te lo agradezco mucho (Y)
desde Costa Rica, SALUDOS!!

30
haha no vi eso -.-
gracias, y si guardo la linea en el campo (6,4) x ejemplo, siempre que actualize me llevara ahí, existe forma de que me lleve a la fila en que me encuentre al momento de actualizar?

31
entiendo, eso me explica muchas cosas, lastimosamente para mi no puedo dar con la configuración correcta que funcione para guardar en visual 2012 y e buscado por todos lados, manuales, internet, youtube, pero en este foro e encontrado mucha información, muchísimas gracias por su apoyo.

32
Creo que tienes razón, puede ser una buena idea : pero mi programa marca como malas algunas palabras porque?

Las palabras que marca erróneas son: Set the current cell to the cell in column 1, Row 0

33
Hola tengo un botón que actualiza bien con este código:

Código: [Seleccionar]
Me.Esc_SalarialTableAdapter.Fill(Me.Database1DataSet.Esc_Salarial)
pero ocupo que actualice y conserve la posición en la que me encuentro en el datagrid para que si hago cambios o cosas de ese tipo, cada vez que actualice no pierda la posición en que estoy y me envíe haastaaa el principio de la bd???

Creo que este código me sirve para eso( si conocen uno díganmelo por favor!(porque no estoy seguro)):
Código: [Seleccionar]
 
        If Me.BindingContext(Esc_SalarialBindingSource).Position = 0 Then
        End If

        Me.BindingContext(Esc_SalarialBindingSource).Position -= 1 And
        Me.BindingContext(Esc_SalarialBindingSource).Position = 1

        Esc_SalarialDataGridView.Text = Me.BindingContext(Esc_SalarialBindingSource).Position
    End Sub


Pero no sé cómo mezclarlos de forma que funcionen correctamente lo tengo asi:

Código: [Seleccionar]
    Private Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
        '   EN LA LINEA SIGUIENTE ME DA ERROR
        If Button5_Click(AcceptButton) Then

            Me.Esc_SalarialTableAdapter.Fill(Me.Database1DataSet.Esc_Salarial)

            If Me.Esc_SalarialTableAdapter.Fill(Me.Database1DataSet.Esc_Salarial) Then
                Me.BindingContext(Esc_SalarialBindingSource).Position = 0
                Me.BindingContext(Esc_SalarialBindingSource).Position -= 1 And
                Me.BindingContext(Esc_SalarialBindingSource).Position = 1
                Esc_SalarialDataGridView.Text = Me.BindingContext(Esc_SalarialBindingSource).Position
            End If
        End If


    End Sub


Pero no me sirve la primer linea del IF, COMO LA HAGO DE FORMA QUE FUNCIONE ESE CÓDIGO o tal vez alguien me pueda dar UN CÓDIGO QUE FUNCIONE EN CASO QUE EL MIO NO SEA EL CORRECTO?

muchas gracias amigos Saludos!

34
Amigo muchas gracias por contestar mis mensajes ! me ayudas demasiado de verdad te lo agradezco mucho, gracias a ti pude tener un avance en ese codigo despues de 4 dias de estar pegado en ese boton de guardar en horario de 7a.m a 5.p.m XD y no son bromas estoy trabajando en este proyecto y eso a sido un dolor de cabeza, en especial porque no tengo muchos conocimientos de programacion, asi que de verdad aprecio mucho tu ayuda jeje ahora tengo un pequeñisimo problema mira:
Código: [Seleccionar]
    '' BOTON GUARDAR''

    Private Sub Guardar_Click(sender As Object, e As EventArgs) Handles Guardar.Click
        Dim cadenaconexion As String
        cadenaconexion = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb"
        Dim comand As New OleDbCommandBuilder
  ***  Dim comand As New OleDbCommand(cadenaconexion)
  ***  comand = conexion

        Try
            Dim GuardarEdicion As OleDbCommandBuilder
            GuardarEdicion = New OleDbCommandBuilder()
            Esc_SalarialDataGridView.Update()
            ' MsgBox("Se han Actualizado los Datos Modificados")

            Cod_puestoTextBox.Text = ""
            Nom_puestoTextBox.Text = ""
            Sal_nivel1TextBox.Text = ""
            Sal_nivel2TextBox.Text = ""
            Sal_nivel3TextBox.Text = ""
            Sal_nivel4TextBox.Text = ""
            Sal_nivel5TextBox.Text = ""

            Esc_SalarialTableAdapter.Dispose()
   ***      conexion.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try


    End Sub

las partes que tienen 3 asteriscos (***) es porque el programa me subraya las palabras comand o conexion en sentido de indicarme que hay un error pero no se cual es :(

Saludos!

35
listo (Y) vieras que sí me actualiza en la BD de access *O*! pero no se guarda lamentablemente :( Te explico...si yo lo corro y hago algún cambio, si me actualiza la bd de access porque veo los cambios q hice desde el programa, y todavía si cierro el programa y le doy de nuevo "actualizar todo" (pero en el access) ahí continuan los cambios a pesar de estar cerrado el programa, sin embargo cuando lo corro de nuevo los cambios que hice en access desaparecen y vuelven a estar la tabla con los mismos datos que tenia al principio y en el programa en no se guardan tampoco porque veo el datagrid con los datos que tenian en un principio la bd de access...
tienes alguna idea de que puedo hacer o será que el código esta mal??? osea que el que estoy utilizando no me sirve?
mira esto tengo en el form y en el boton guardar:
Código: [Seleccionar]
Public Class Form1

    Dim row(7) As String
    Private Property BOF As Boolean

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'TODO: esta línea de código carga datos en la tabla 'Database1DataSet.Esc_Salarial' Puede moverla o quitarla según sea necesario.
        Me.Esc_SalarialTableAdapter.Fill(Me.Database1DataSet.Esc_Salarial)

        Guardar.Text = "Guardar"


    End Sub

Código: [Seleccionar]
    '' BOTON GUARDAR''

    Private Sub Guardar_Click(sender As Object, e As EventArgs) Handles Guardar.Click
        Me.Esc_SalarialTableAdapter.Update(Me.Database1DataSet.Esc_Salarial)
        row(0) = Cod_puestoTextBox.Text
        row(1) = Nom_puestoTextBox.Text
        row(2) = Sal_nivel1TextBox.Text
        row(3) = Sal_nivel2TextBox.Text
        row(4) = Sal_nivel3TextBox.Text
        row(5) = Sal_nivel4TextBox.Text
        row(6) = Sal_nivel5TextBox.Text

        Cod_puestoTextBox.Text = ""
        Nom_puestoTextBox.Text = ""
        Sal_nivel1TextBox.Text = ""
        Sal_nivel2TextBox.Text = ""
        Sal_nivel3TextBox.Text = ""
        Sal_nivel4TextBox.Text = ""
        Sal_nivel5TextBox.Text = ""

********************************************************
ademas me acabo de dar cuenta que si uso el boton de borrar para eliminar algunas filas q tengo de más, y luego intento guardar me da este error:

36
O.O eso tiene mucho sentido muchas gracias! *w* entonces basta con solo eliminar las lineas de las columnas o debo quitar todo lo que tenga q ver con el establecimiento manual?
de antemano gracias gracias gracias *-*

37
No se si me estoy explicando bien, si ocupas ver todo el codigo me dices y lo pongo.. ocupo ayuda  :'(

38
jajajaja si mis disculpas ;D esq no tengo nada de codigo en el boton de "Guardar" por eso no lo puse xD esq ya e visto tantos que mejor borre el código que tenia porq no se cual es la manera correcta :P la imagen es para que vieras el numero de columnas y eso... Intente con este codigo, intentando moldearlo a mi programa pero no me funciono y daba error, mira el codigo q consegui
Código: [Seleccionar]
Public Class Form1
    Dim row(4) As String
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Button1.Text = "Guardar"
        Button2.Text = "Cerrar"
        DataGridView1.ColumnCount = 4
        DataGridView1.Columns(0).Name = "Fabricante"
        DataGridView1.Columns(1).Name = "Modelo"
        DataGridView1.Columns(2).Name = "Nombre recambio"
        DataGridView1.Columns(3).Name = "Referencia"
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        row(0) = TextBox1.Text
        row(1) = TextBox2.Text
        row(2) = TextBox3.Text
        row(3) = TextBox4.Text
        Dim rowToSave As String() = New String() {row(1), row(2), row(3), row(4)}
        DataGridView1.Rows.Add(row)
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox3.Text = ""
        TextBox4.Text = ""
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.Close()
        End
    End Sub
End Class
*
*
*
una vez que lo moldee me quedo de esta forma:

Código: [Seleccionar]
Public Class Form1

    Dim row(7) As String

    Private Property BOF As Boolean

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'TODO: esta línea de código carga datos en la tabla 'Database1DataSet.Esc_Salarial' Puede moverla o quitarla según sea necesario.
        Me.Esc_SalarialTableAdapter.Fill(Me.Database1DataSet.Esc_Salarial)
        'TODO: esta línea de código carga datos en la tabla 'Database1DataSet.Dependencias' Puede moverla o quitarla según sea necesario.
        Me.DependenciasTableAdapter.Fill(Me.Database1DataSet.Dependencias)

        Button1.Text = "Guardar"
        Esc_SalarialDataGridView.ColumnCount = 7
        Esc_SalarialDataGridView.Columns(0).Name = "cod_puesto"
        Esc_SalarialDataGridView.Columns(1).Name = "nom_puesto"
        Esc_SalarialDataGridView.Columns(2).Name = "Sal_nivel1"
        Esc_SalarialDataGridView.Columns(3).Name = "Sal_nivel2"
        Esc_SalarialDataGridView.Columns(4).Name = "Sal_nivel3"
        Esc_SalarialDataGridView.Columns(5).Name = "Sal_nivel4"
        Esc_SalarialDataGridView.Columns(6).Name = "Sal_nivel5"

    End Sub

    '' BOTON GUARDAR''

    Private Sub Guardar_Click(sender As Object, e As EventArgs) Handles Guardar.Click
        'Me.Esc_SalarialTableAdapter.Update(Me.Database1DataSet.Esc_Salarial)

        row(0) = Cod_puestoTextBox.Text
        row(1) = Nom_puestoTextBox.Text
        row(2) = Sal_nivel1TextBox.Text
        row(3) = Sal_nivel2TextBox.Text
        row(4) = Sal_nivel3TextBox.Text
        row(5) = Sal_nivel4TextBox.Text
        row(6) = Sal_nivel5TextBox.Text

        Dim rowToSave As String() = New String() {row(1), row(2), row(3), row(4), row(5), row(6), row(7)}
        Esc_SalarialDataGridView.Rows.Add(row)
        Cod_puestoTextBox.Text = ""
        Nom_puestoTextBox.Text = ""
        Sal_nivel1TextBox.Text = ""
        Sal_nivel2TextBox.Text = ""
        Sal_nivel3TextBox.Text = ""
        Sal_nivel4TextBox.Text = ""
        Sal_nivel5TextBox.Text = ""


    End Sub
End Class
*
*
*
 y eso me da este error:


39
Gracias por ayudarme! encuentro bastante interesante el código que logro generar al final y perdona que sea tan novato en esto, el simple hecho que hayas respondido es de gran ayuda, pero tienes alguna idea de como aplicar ese código en mi botón de guardar????

40
Hola, soy nuevo en lo respecta a programación y estoy haciendo lo que podría considerar yo como mi primer proyecto mas importante..
.
COMO HABRÁN LEÍDO NECESITO AYUDA y el problema con mi programa es que no logro configurar el botón de Guardar de manera que si corro el programa y hago cambios en mi DataGridView, se guarden para la próxima vez que lo corra y a la vez se guarden a la base de datos de access a la que estoy conectado con el programa... y francamente e buscado vídeos de youtube, foros y otros medios de investigación para aprender a hacerlo ya que nadie me esta enseñando y e visto ya tantas formas diferentes que no me han funcionado que no se ni como empezar.. alguien me puede dar ideas, de antemano se lo agradeceré.

Gracias

Páginas: 1 [2]

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".