Programación General > Visual Basic 6.0 e inferiores

 Addnew En Dao

(1/3) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa