Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/02/2010, 11:43
andrew888
 
Fecha de Ingreso: noviembre-2009
Mensajes: 40
Antigüedad: 14 años, 6 meses
Puntos: 0
Problemas al actualizar y validar datos?

Estimados compañeros tengo un problema, es el siguiente: Mi aplicacion crea un numero de registros, equivalente al numero de dias de un mes determinado y de un ambiente determinado. Sin embargo al tratar de jalar esos datos creados en una tabla de access y tratar de modificarlos a traves de un objeto datagrid a traves de una conexion adob, me trae problemas con el tipo de datos,el objeto dao para ser creado debe ser de tipo cadena y mis datos de la tabla de access tienen valores nullo y al mandarlos al objeto datagrid me da errores diciendo que no se puede actualizar valores nullos por otros nullos.
El codigo es el siguiente:
Sub MostrarRegistros(FechaMuestreo As Date, IdAmbiente As Integer)
'************************************************* ************************
'Nombre: MostrarRegistros
'Fecha Creacion: 08/02/2010
'Parametros:
'FechaMuestreo: Fecha en la que se realiza el muestreo
'IdAmbiente: Codigo del ambiente
'Objetivo: Mostrar un numero de registros de un determinado mes
'y ambiente en una tabla adob
'************************************************* ************************
Dim mes, Gestion As Integer
'Creamos los objetos para enlazar a la base de datos
Dim cn As New ADODB.Connection 'Creamos el objeto Connection para enlazar a la base
Dim rs As New ADODB.Recordset 'Creamos el objeto Recordset para enlazar a la tabla
'Creamos el objeto para enviar los registros en una tabla
'de tipo ADOB
Set rst = New ADODB.Recordset
rst.CursorLocation = adUseClient
'Creando los encabezados de la tabla adob
rst.Fields.Append "Fecha", adDate, 25
rst.Fields.Append "Hora", adVarChar, 8, adFldIsNullable
'rst.Fields.Append "Temperatura", adVarChar, 10, adFldIsNullable
rst.Fields.Append "Temperatura", adDouble
rst.Fields.Append "Ph", adDouble
rst.Fields.Append "Turbidez (Ntu)", adDouble, adFldIsNullable
rst.Fields.Append "Cloro Libre", adDouble, adFldIsNullable
rst.Fields.Append "Alc.Fenoftaleina(mg/l)", adDouble, adFldIsNullable
rst.Fields.Append "Alcalinidad Total(mg/l)", adDouble, adFldIsNullable
rst.Fields.Append "Calcio(mg/l)", adDouble, adFldIsNullable
rst.Fields.Append "Magnesio(mg/l)", adDouble, adFldIsNullable
'Inicio Metales pesados
rst.Fields.Append "Hierro(mg/l)", adDouble, adFldIsNullable
rst.Fields.Append "Manganeso(mg/l)", adDouble, adFldIsNullable
'Fin Metales pesados
rst.Fields.Append "Cloruros(mg/l)", adDouble, adFldIsNullable
rst.Fields.Append "Ph Saturación", adDouble, adFldIsNullable
rst.Fields.Append "Índice de Langelier", adDouble, adFldIsNullable
rst.Fields.Append "Conductividad(ms/cm)", adDouble, adFldIsNullable
rst.Fields.Append "Color(mPt-Co)", adDouble, adFldIsNullable
'Inicio Metales pesados
rst.Fields.Append "Aluminio(mg/l)", adDouble, adFldIsNullable
'Fin Metales Pesados
rst.Fields.Append "Sulfatos(mg/l)", adDouble, adFldIsNullable
rst.Fields.Append "Nitratos(mg/l)", adDouble, adFldIsNullable
rst.Fields.Append "Nitritos(mg/l)", adDouble, adFldIsNullable
rst.Fields.Append "Olor", adVarChar, 1, adFldIsNullable
rst.Fields.Append "Sabor", adVarChar, 1, adFldIsNullable
rst.Fields.Append "Fluoruros(mg/l)", adDouble, adFldIsNullable
rst.Fields.Append "Vol.de Alc. Fenoftaleina", adDouble, adFldIsNullable
rst.Fields.Append "Vol.de Alcalinidad Total", adDouble, adFldIsNullable
rst.Fields.Append "Concentración H2SO4(M)(Alcalinidad)", adDouble, adFldIsNullable
rst.Fields.Append "Vol. de EDTA(Calcio)", adDouble, adFldIsNullable
rst.Fields.Append "Vol. de EDTA(Dureza)", adDouble, adFldIsNullable
rst.Fields.Append "Volumen muestra(ml)(Dureza)", adDouble, adFldIsNullable
rst.Fields.Append "Concentracion EDTA(M)(Dureza)", adDouble, adFldIsNullable
rst.Fields.Append "Vol. de AgNO3(Cloruros)", adDouble, adFldIsNullable
rst.Fields.Append "Volumen muestra(ml)(Cloruros)", adDouble, adFldIsNullable
rst.Fields.Append "Concentración AgNO3(N)(Cloruros)", adDouble, adFldIsNullable
'abriendo la tabla del datagrid adob
rst.Open , , adOpenStatic, adLockBatchOptimistic
'Obteniendo el año y el mes de la fecha de muestreo
mes = Month(FechaMuestreo)
Gestion = Year(FechaMuestreo)
'Abrimos la base de datos "bd_plantas.mdb"
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=e:\registro_plantas\bd_plantas.mdb"
rs.Source = "ta_ana_fis_qui" 'Especificamos la fuente de datos. En este caso la tabla "ta_ana_fis_qui".
rs.CursorType = adOpenKeyset 'Definimos el tipo de cursor.
rs.LockType = adLockOptimistic 'Definimos el tipo de bloqueo.
'Abrimos el Recordset y lo llenamos con una consulta SQL.
rs.Open "select * from ta_ana_fis_qui where ano = " & Gestion & "And periodo = " & mes & "And Id_Ambiente= " & IdAmbiente, cn
rs.MoveFirst 'Nos posicionamos en el primer registro del Recordset.
Do Until rs.EOF 'Repite hasta que se lea todo el Recordset.
'Adicionamos elementos a la tabla
' rst.AddNew Array("Fecha", "Hora", "Temperatura", "Ph"), _
'Array(rs.Fields("F_FECHA_MUESTREO"), rs.Fields("F_HORA_MUESTREO"), _
'rs.Fields("B_TEMPERATURA"), rs.Fields("B_PH"))
rst.AddNew Array("Fecha", "Hora", "Temperatura"), Array(rs.Fields("F_FECHA_MUESTREO"), rs.Fields("F_HORA_MUESTREO"), rs.Fields("B_TEMPERATURA"))
'List1.AddItem rs.Fields("FECHA_REGISTRO") & " " & rs.Fields("ano") & " " & rs.Fields("periodo") & " " _
'& rs.Fields("hora_registro") & " " & rs.Fields("id_analisis")
rs.MoveNext 'Nos movemos al siguiente registro.
Loop
'Almacenamos todos los datos en el datagrid adob
Set DataGrid_Muestras.DataSource = rst
rs.Close
'rst.Close
End Sub

De antemano gracias.
Saludos