
30/07/2013, 15:04
|
| | Fecha de Ingreso: julio-2013
Mensajes: 1
Antigüedad: 11 años, 8 meses Puntos: 0 | |
Error en llenado de tabla amigos soy nuevo en net y estoti tratando de hacer un aplicativo pero tengo unos errors a ver si me ayudan a corregirlo
tengo dos datagridview cunado seleccione una linea del data grid se debe actualizar el otro datagridview, el asunto es que se muetra peor no muestra la data correcta
y ademas se va agregando el mismo registro
este es el codigo:
Código:
Imports System.Configuration
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
Public Class Registro
Dim nCnxRRHH As New SqlClient.SqlConnection("server=SRVDC01;database=RRHH;integrated security =FALSE;User ID=sa;Password=Chosica;")
Dim dsBasedatos As New DataSet
Dim cIdTrabajador As String = ""
Dim cIddestaque As String = ""
Dim nIdFicha As Integer
Dim daAntecedentesPersonales As New SqlDataAdapter
Private dtFicha As DataTable = dsBasedatos.Tables("Ficha_Medica")
Private daFichas As New SqlDataAdapter
Private drFila As DataRow
Private cModulo As String
Dim nContador As Integer
Public cCmd As New SqlCommand
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim cSql1 As String
Dim cSql2 As String
Dim cSql3 As String
Dim cSql4 As String
Dim cSql5 As String
cSql1 = " Select distinct nombre , s.Abreviada as Tipo_Documento , substring(t.idtrabajador,3,16) as Numero_Documento, t.idtrabajador ,d.Iddestaque"
cSql2 = " from pL_Trabajadores T"
cSql3 = " right join pl_destaques d on d.idtrabajador = t.idTrabajador"
cSql4 = " left join pl_sunat S on s.idTabla = '003' and s.codigo =left(t.idtrabajador,2)"
cSql5 = " where d.fechacese is null "
Dim daTrabajadores As New SqlDataAdapter(cSql1 & cSql2 & cSql3 & cSql4 & cSql5, nCnxRRHH)
daTrabajadores.Fill(dsBasedatos, "Trabajadores")
' nCnxRRHH.Close()
dgvTrabajadores.DataSource = dsBasedatos.Tables("Trabajadores")
' dgvTrabajadores.DataMember = "Trabajadores"
' Formato_Trabajadores()
End Sub
Sub Formato_Trabajadores()
With dgvTrabajadores
' .RowsDefaultCellStyle.BackColor = Color.White
' .AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue ' Color.Coral
'Color.AliceBlue
.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(0).Width = 260 ' nombre
.Columns(1).Width = 60 ' Documento
.Columns(2).Width = 70 ' Numero
.Columns(0).HeaderText = "Apellidos y Nombre"
.Columns(1).HeaderText = "Documento"
.Columns(2).HeaderText = "Numero"
End With
End Sub
Sub Formato_Fichas()
With dgvFichas
' .RowsDefaultCellStyle.BackColor = Color.White
' .AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue ' Color.Coral
'Color.AliceBlue
.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
.Columns(0).Width = 50 ' nombre
.Columns(1).Width = 147 ' Documento
.Columns(2).Width = 70 ' Numero
.Columns(0).HeaderText = "Ficha"
.Columns(1).HeaderText = "Evaluacion"
.Columns(2).HeaderText = "Fecha"
End With
End Sub
Private Sub dgvTrabajadores_CellContentDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvTrabajadores.CellContentDoubleClick
'Val Para la edicion
With dgvTrabajadores.CurrentRow
cIdTrabajador = .Cells("idTrabajador").Value
' If IsDBNull(.Cells("idDestaque").Value) Then frmRegistro.txtIddestaque.Text = "" Else frmRegistro.txtIddestaque.Text = .Cells("iddestaque").Value
End With
End Sub
Private Sub PictureBox2_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox2.MouseHover
Me.PictureBox2.Location = New Point(313, 20)
Me.PictureBox2.Size = New Size(520, 582)
End Sub
Private Sub PictureBox2_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox2.MouseLeave
Me.PictureBox2.Location = New Point(549, 20)
Me.PictureBox2.Size = New Size(284, 313)
End Sub
Private Sub Lista_Fichas()
Dim cSql1 As String
Dim cSql2 As String
Dim cSql3 As String
Dim cSql4 As String
Dim cSql5 As String
Dim cIdtrabajador As String
Dim nFilas As Integer
'Dim dtFicha As DataTable = dsBasedatos.Tables("Ficha_Medica")
Try ' Set up structured error handling.
cIdtrabajador = dsBasedatos.Tables("Trabajadores").Rows(dgvTrabajadores.CurrentCell.RowIndex).Item("IDtrabajador").ToString.Trim
Catch ex As Exception ' Catch the error.
' Beep()
cIdtrabajador = ""
MsgBox(ex.Message)
' aca sale el error "Referencia a objeto no establecida como instancia de un objeto"
Finally
Beep() ' This line is executed no matter what.
End Try
If dsBasedatos.Tables.CanRemove(dtFicha) Then
dsBasedatos.Tables.Remove(dtFicha)
End If
' carga la foto
If File.Exists("R:\fotos\" & cIdtrabajador.Trim & ".jpg") Then
PictureBox2.Image = System.Drawing.Image.FromFile("R:\fotos\" & cIdtrabajador.Trim & ".jpg")
Else
End If
PictureBox2.Show()
If Len(cIdtrabajador) > 0 Then
cSql1 = " SELECT idficha,TE.NOMBRE,FECHA "
cSql2 = " FROM FICHA_MEDICA F "
cSql3 = " LEFT JOIN SYS_DETALLEgENERAL TE ON TE.IDITEM = F.TIPO_EVALUACION AND IDGENERAL = '401' "
cSql4 = " where f.idtrabajador = '" & cIdtrabajador & "'"
cSql5 = " Order by Fecha DESC "
cCmd = New SqlCommand(cSql1 & cSql2 & cSql3 & cSql4 & cSql5, nCnxRRHH)
daFichas = New SqlDataAdapter '(cSql1 & cSql2 & cSql3 & cSql4 & cSql5, nCnxRRHH)
daFichas.SelectCommand = cCmd
'Dim cbComando As New SqlCommandBuilder(daFichas)
daFichas.Fill(dsBasedatos, "Ficha_Medica")
' nCnxRRHH.Close()
dgvFichas.DataSource = dsBasedatos.Tables("Ficha_Medica")
Formato_Fichas()
'nFilas = dgvFichas.GetCellCount(DataGridViewElementStates.Selected)
nFilas = dgvFichas.Rows.Count()
Else
nFilas = 0
End If
If nFilas > 0 Then
With dgvFichas.CurrentRow
'nIdFicha = .Cells("idfICHA").Value
' If IsDBNull(.Cells("ficha").Value) Then nidFicha = 0 Else nidFicha = .Cells("idficha").Value
' If IsDBNull(.Cells("idFicha").Value) Then lblidficha.Text = "" Else lblidficha.Text = .Cells("idFicha").Value
End With
Botones(True)
'Me.ToolNuevo.Enabled = True
Else
nIdFicha = 0
lblidficha.Text = Str(nIdFicha)
Botones(True)
End If
End Sub
Sub Botones(ByVal lAccion As Boolean)
Me.ToolNuevo.Enabled = lAccion
Me.ToolEditar.Enabled = lAccion
Me.ToolEditar.Visible = lAccion
Me.ToolGrabar.Enabled = Not lAccion
Me.ToolGrabar.Visible = Not lAccion
Me.ToolEliminar.Enabled = Not lAccion
End Sub
Private Sub dgvTrabajadores_CurrentCellChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles dgvTrabajadores.CurrentCellChanged
Lista_Fichas()
End Sub
Private Sub ToolNuevo_Click(sender As System.Object, e As System.EventArgs) Handles ToolNuevo.Click
cModulo = "Nuevo"
With dgvTrabajadores.CurrentRow
cIdTrabajador = .Cells("idTrabajador").Value
End With
Me.txtDocumento.Text = Mid(cIdTrabajador, 1, 2) & "-" & Mid(cIdTrabajador, 3, 16)
'
Inserta_Nueva()
'
Cargar_Datos()
Botones(True)
End Sub
Private Sub ToolSalir_Click(sender As System.Object, e As System.EventArgs) Handles ToolSalir.Click
Close()
Salud.barras(True)
End Sub
Private Sub ToolEditar_Click(sender As System.Object, e As System.EventArgs) Handles ToolEditar.Click
cModulo = "Editar"
' nIdFicha = dsBasedatos.Tables("FICHA_MEDICA").Rows(0).Item(1)
With dgvFichas.CurrentRow
nIdFicha = .Cells("idfICHA").Value
lblidficha.Text = .Cells("idFicha").Value.ToString.Trim
' If IsDBNull(.Cells("idDestaque").Value) Then frmRegistro.txtIddestaque.Text = "" Else frmRegistro.txtIddestaque.Text = .Cells("iddestaque").Value
End With
With dgvTrabajadores.CurrentRow
cIdTrabajador = .Cells("idTrabajador").Value
cIddestaque = .Cells("idDestaque").Value
End With
Botones(False)
Cargar_Datos()
End Sub
este es el formulario |