Programación General > Visual Basic 6.0 e inferiores
Addnew En Dao
RadicalEd:
Hola chicos de SoloCodigo, como estan? hace rato no me paso por que hay mucho camello; tengo una duda:
Estoy trabajando sobre una DB de Access con DAO (no con ADO por que no lo manejo todavia), y al usar el método AddNew, no todas las veces me guarda el registro, por que sera, aqui les muestro el código
--- Código: Text ---Private Sub cmdSave_Click() On Error Resume Next Dim dbVisitas As Database Dim rsVisitas As Recordset Set dbVisitas = OpenDatabase(App.Path & "\bd1.mdb") Set rsVisitas = dbVisitas.OpenRecordset("VISITA", dbOpenDynaset)' If txtMes.Text <> "" Or txtTipo.Text <> "" Or txtAuditor.Text <> "" Or txtMostrador.Text <> "" Or _' txtZona.Text <> "" Or txtPDV.Text <> "" Or txtExcep.Text <> "" Or txtCompro.Text <> "" Then' Set rsVisitas = dbOpenDB.OpenRecordset("VISITA", dbOpenTable) With rsVisitas .AddNew !NUM_MES = txtMes !FECHA = dtpDate !TIPO = txtTipo !AUDITOR = txtAuditor !COD_ZONA = txtMostrador & " " & txtZona If chkExep.Value = 0 Then Call MsgBox("NO HAY EXCEPCIONES", vbCritical, "Advertencia") Else !EXCEPCIONES = chkExep.Value !COD_EXEPCION = txtExcep !VLR_AJUSTE = txtVrAjuste End If !PDV = txtPDV !ENCARGADO = txtPDV !COMPROMISO = txtCompro .Update .Bookmark = .LastModified End With With rsVisitas Debug.Print "Registro nuevo: " & !NUM_MES & " " & !FECHA & " " & !AUDITOR _ & " " & !PDV & " " & !COD_ZONA & " " & !ENCARGADO & " " & !COD_EXEPCION _ & " " & !VLR_AJUSTE & " " & !EXCEPCIONES & " " & !ENCARGADO & " " & !TIPO End With Call CleanText' Else' Call MsgBox("Favor Introducir Datos", vbCritical, "Advertencia")' cmbMeses.SetFocus' End If rsVisitas.Close dbVisitas.Close Call VisibleFalseEnd Sub Gracias Chao.
Sagutxo:
SAlu2.
Seria posible que te diera algun tipo de error al grabar el registro que no muestra por el Resume Next?, osea, errores como campos obligatorios que no tienen datos.
Mas que una respuesta es una pregunta jejeje, bueno ahí queda.
:whistling: :smartass: :comp:
neorent:
--- Cita de: "RadicalEd" --- Hola chicos de SoloCodigo, como estan? hace rato no me paso por que hay mucho camello; tengo una duda:
Estoy trabajando sobre una DB de Access con DAO (no con ADO por que no lo manejo todavia), y al usar el método AddNew, no todas las veces me guarda el registro, por que sera, aqui les muestro el código
--- Código: Text ---Private Sub cmdSave_Click() On Error Resume Next Dim dbVisitas As Database Dim rsVisitas As Recordset Set dbVisitas = OpenDatabase(App.Path & "\bd1.mdb") Set rsVisitas = dbVisitas.OpenRecordset("VISITA", dbOpenDynaset)' If txtMes.Text <> "" Or txtTipo.Text <> "" Or txtAuditor.Text <> "" Or txtMostrador.Text <> "" Or _' txtZona.Text <> "" Or txtPDV.Text <> "" Or txtExcep.Text <> "" Or txtCompro.Text <> "" Then' Set rsVisitas = dbOpenDB.OpenRecordset("VISITA", dbOpenTable) With rsVisitas .AddNew !NUM_MES = txtMes !FECHA = dtpDate !TIPO = txtTipo !AUDITOR = txtAuditor !COD_ZONA = txtMostrador & " " & txtZona If chkExep.Value = 0 Then Call MsgBox("NO HAY EXCEPCIONES", vbCritical, "Advertencia") Else !EXCEPCIONES = chkExep.Value !COD_EXEPCION = txtExcep !VLR_AJUSTE = txtVrAjuste End If !PDV = txtPDV !ENCARGADO = txtPDV !COMPROMISO = txtCompro .Update .Bookmark = .LastModified End With With rsVisitas Debug.Print "Registro nuevo: " & !NUM_MES & " " & !FECHA & " " & !AUDITOR _ & " " & !PDV & " " & !COD_ZONA & " " & !ENCARGADO & " " & !COD_EXEPCION _ & " " & !VLR_AJUSTE & " " & !EXCEPCIONES & " " & !ENCARGADO & " " & !TIPO End With Call CleanText' Else' Call MsgBox("Favor Introducir Datos", vbCritical, "Advertencia")' cmbMeses.SetFocus' End If rsVisitas.Close dbVisitas.Close Call VisibleFalseEnd Sub Gracias Chao.
--- Fin de la cita ---
saludos:
pero te envia algun error al tratar de grabar el registro o simplemente pasa de largo y no te dice nada?
se que utilizas dao y yo uso ado pero yo tengo una aplicacion con una base de acces 97 la y grabo y edito ademas puedo eliminar si quieres te puedo enviar algun metodo por ejemplo yo uso este modo para abrir las bases y trabjar las tablas.
[CODE]
Dim a As Database
Dim b As Recordset
Private Sub Form_Load()
Set a = OpenDatabase("\\Obiwan\soporte\bd1.mdb")
Set b = a.OpenRecordset("tabla_tecnicos")
If b.RecordCount = 0 Then
MsgBox "No Existen Registros", vbInformation, "Por Favor Ingrese"
Else
b.MoveFirst
End If
End Sub
'/asi las abro y asi grabo mira
sub grabar()
b.addnew
b("registro")&"" = text1.text '/ el &"" es por si te dan un registro en blanco y asi no te marca error al grabar puede ser espero que te sirva
b.update
end sub
si te puedo ayudar en algo mas solo dilo adios
RadicalEd:
Pos no habia pensado en lo de quitarle el Resume Next, aunque no me muestra un error, lo que hace es pasarme de largo el registro, cuando no graba en el debug (esta parte del código):
--- Código: Text --- Debug.Print "Registro nuevo: " & !NUM_MES & " " & !FECHA & " " & !AUDITOR _& " " & !PDV & " " & !COD_ZONA & " " & !ENCARGADO & " " & !COD_EXEPCION _& " " & !VLR_AJUSTE & " " & !EXCEPCIONES & " " & !ENCARGADO & " " & !TIPO Me aparece es:
Registro nuevo: False
Gracias por ayudarme
Chao
Sagutxo:
Salu2, Sin ánimos de ofender el código de otra persona :(, Hay algo que me tiene intrigado en tu Cod.
Te dispones a guardar los datos
.AddNew
!NUM_MES = txtMes
!FECHA = dtpDate
!TIPO = txtTipo
!AUDITOR = txtAuditor
!COD_ZONA = txtMostrador & " " & txtZona
AKI COMPRUEBAS UN CAMPO y existe la posibilidad de error crítico según tu mensaje, pienso que estaría mejor arriba el checkeo de ese campo.
If chkExep.Value = 0 Then
Call MsgBox("NO HAY EXCEPCIONES", vbCritical, "Advertencia")
Else
!EXCEPCIONES = chkExep.Value
!COD_EXEPCION = txtExcep
!VLR_AJUSTE = txtVrAjuste
End If
sigue grabando tanto si es true como si es false
!PDV = txtPDV
!ENCARGADO = txtPDV
!COMPROMISO = txtCompro
.Update
.Bookmark = .LastModified
al principio haces = abres la DB y la tabla y despues compruebas si los campos tienen datos.
Si te molestan estos comentarios perdóname lo hago con la mejor intención aunke dado tu gran numero de mensajes respondidos me temo que solo estás haciendo pruebas :).
-------------------------------
Me ha ocurrido a la hora de pasar un valor true a una Db de acces97 en la que he tenido que pasarle el valor (-1) directamente ya que si no lo graba mal, aunke dudo que esto haría que no se grabara el registro. Es que no veo nada mas que sea raro.
:smartass: :whistling: :comp:
Navegación
[#] Página Siguiente
Ir a la versión completa