In my first post I've exposed simplified code. There goes exact code from
begining to line in which error happens:
Private Sub CargaTrabajos()
Dim oDt As New DataTable("Trabajos")
Dim oDA As New OleDb.OleDbDataAdapter
Dim oReg As ADODB.Recordset
' Get records
oReg = goAp.BD.SQL("SELECT SAT_Trabajos.ID, SAT_Trabajos.SAT,
SAT_Trabajos.Fecha, SAT_Trabajos.Tipo, SAT_Trabajos.Plazo, SAT_Trabajos.OT,
SAT_Trabajos.Concepto, SAT_Trabajos.Observaciones, SAT_Trabajos.Producto,
SAT_Trabajos.Serie, SAT_Trabajos.Estado, SAT_Trabajos.Asignado,
SAT_Trabajos.Cerrado, SAT_Tipos.Nombre AS NombreTipo, SAT_Estados.Nombre AS
NombreEstado, SAT_Trabajos.Horas, SAT_Trabajos.TipoHoras,
SAT_Trabajos.ClaseHoras, SAT_Trabajos.Material, SAT_Trabajos.Kilometros,
SAT_Trabajos.TipoKilometros, SAT_Trabajos.Vehiculo, SAT_Trabajos.Revisado
FROM (SAT_Trabajos LEFT JOIN SAT_Tipos ON SAT_Trabajos.Tipo = SAT_Tipos.ID)
LEFT JOIN SAT_Estados ON SAT_Trabajos.Estado = SAT_Estados.ID WHERE
SAT_Trabajos.SAT = " + Format(Me.Registro.Fields("ID").Value) + " ORDER BY
SAT_Trabajos.ID")
If oReg Is Nothing Then
MsgBox(goAp.BD.UltimoMensaje, MsgBoxStyle.Exclamation, "Error")
Exit Sub
End If
' Additional fields
oDt.Columns.Add("NombreOperario", GetType(String))
oDt.Columns.Add("NombreOT", GetType(String))
oDt.Columns.Add("NombreTipoHoras", GetType(String))
oDt.Columns.Add("NombreClaseHoras", GetType(String))
oDt.Columns.Add("NombreTipoKm", GetType(String))
oDt.Columns("NombreOT").DefaultValue = ""
oDt.Columns("NombreOperario").DefaultValue = ""
oDt.Columns("NombreTipoHoras").DefaultValue = ""
oDt.Columns("NombreClaseHoras").DefaultValue = ""
oDt.Columns("NombreTipoKm").DefaultValue = ""
oDA.Fill(oDt, oReg)
moDTOT = oDt
oReg.Close()
' Valores por defecto
oDt.Columns("Fecha").DefaultValue = Today
oDt.Columns("Concepto").DefaultValue = ""
oDt.Columns("Observaciones").DefaultValue = ""
oDt.Columns("OT").DefaultValue = 0
oDt.Columns("Producto").DefaultValue = ""
oDt.Columns("Serie").DefaultValue = ""
oDt.Columns("Asignado").DefaultValue = 0
oDt.Columns("NombreEstado").DefaultValue = ""
oDt.Columns("Horas").DefaultValue = 0
oDt.Columns("TipoHoras").DefaultValue = ""
oDt.Columns("ClaseHoras").DefaultValue = -1
oDt.Columns("Material").DefaultValue = ""
oDt.Columns("Kilometros").DefaultValue = 0
oDt.Columns("TipoKilometros").DefaultValue = ""
oDt.Columns("Vehiculo").DefaultValue = ""
oDt.Columns("Revisado").DefaultValue = 0
oDt.Rows(0)("Horas") = 3 ' Error appears here
...
This last line is only to reproduce error because really it happens when
datagrid that handles oDt updates a row, so this way datagrid is discarded as
error maker. Error happens at this line too.
Additional fields are to show related information in the datagrid.
I'm still making tests but I've confirmed that same code (copied and pasted)
works ok on another blank project. It's very strange.
Any advice about other tests to do to get error source?
Thanks.