Access - Dar valor a campo vacio en ACCESS2003

 
Vista:

Dar valor a campo vacio en ACCESS2003

Publicado por marcux1 (4 intervenciones) el 10/05/2012 11:23:23
Hola a todos/as,

mi pregunta es la siguiente :
tengo una tabla (tempAtribut) que tiene los campos
F9 (texto)
ATRIBUT (texto)

el campo ATRIBUT en algunos registros esta lleno y en otros esta vacío.

me estoy comiendo el coco para intentar que cuando el campo ATRIBUT esté vacío, se rellene con el valor de F9...

por el momento he creado un formulario aparte con un boton de comando al que le pongo este código (aprovechado de otra bbdd que hacia otra funcion diferente), pero evidentemente algo esta mal porqué me da error...

Private Sub Comando0_Click()
Dim vNum As String, vInicio As String
Dim f9num As String
Dim rst As DAO.Recordset

Set rst = CurrentDb.OpenRecordset("tempAtribut")
rst.MoveFirst
Do Until rst.EOF
vNum = rst.Fields("ATRIBUT").Value
f9num = rst.Fields("F9").Value
vInicio = vNum
If vInicio = " " Then
vNum = f9num
With rst
.Edit
.Fields("ATRIBUT").Value = vNum
.Update
End With
End If
rst.MoveNext
Loop
MsgBox "Reemplazo realizado correctamente", vbInformation, "OK"

End Sub

al ejecutar el boton me da el siguiente error "Error de compilación : no se ha definido el tipo definido por el usuario"
alguien me puede ayudar??

muchas gracias!!!

Saludos Marc
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Dar valor a campo vacio en ACCESS2003

Publicado por josepf (54 intervenciones) el 10/05/2012 12:13:16
Buenas Marc!

Primero decirte que hay un método más sencillo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Private Sub Comando0_Click()
 Dim vNum As String, vInicio As String
 Dim f9num As String
 Dim rst As DAO.Recordset
 
Set rst = CurrentDb.OpenRecordset("tempAtribut")
 rst.MoveFirst
 Do Until rst.EOF
   if isnull(rst!ATRIBUT) OR RST!ATRIBUT="" THEN
        rst.edit
        rst!ATRIBUT=rst!F9
        rst.update
   endif
   rst.MoveNext
 Loop
 MsgBox "Reemplazo realizado correctamente", vbInformation, "OK"
 
End Sub

Espero te sirva.

1 Saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Dar valor a campo vacio en ACCESS2003

Publicado por marcux (4 intervenciones) el 10/05/2012 12:36:36
Hola josepf,
antetodo agradecerte la rapidez de tu respuesta,

cuando lo ejecuto me sigue dando el mismo error :
"Error de compilación : no se ha definido el tipo definido por el usuario"
señalando en negrita la parte

rst As DAO.Recordset

que puede ser ? debe ser una tonteria, espero tu respuesta...
muchas gracias otra vez!!
Marc
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Dar valor a campo vacio en ACCESS2003

Publicado por Marc (4 intervenciones) el 10/05/2012 12:52:55
Hola otra vez,
habilitando la libreria Microsoft DAO 3.6 Object Library (un amiguito me lo chivó)
ya no me da error, lo que pasa es que no pone el valor de F9 al campo ATRIBUT, la tabla continua como estaba..
a ver si lo sacamos!

muchas gracias otra vez!
MArc
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Dar valor a campo vacio en ACCESS2003

Publicado por JOSE (830 intervenciones) el 10/05/2012 17:01:27
Vete a crear una consulta

vete a vista SQL


COPIA EL TEXTO

UPDATE tempAtribut SET tempAtribut.ATRIBUT = [tempAtribut].[F9]
WHERE (((tempAtribut.ATRIBUT) Is Null));


CON esta consulta de actualizacion se soluciona tu problema
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Dar valor a campo vacio en ACCESS2003

Publicado por Marcux (4 intervenciones) el 11/05/2012 10:45:12
Buenos dias,

ante todo muchísimas gracias,
da gusto recibir respuestas tan rapidas ante "problemas" que a uno se le hacen enormes....

bueno, os cuento, ya tengo solucionado el problema,
el codigo que me disteis iba perfecto, lo que pasaba es que el valor (cuando yo decia que estaba vacío) no era NULL sino era una cadena vacía,
fue NECKKITO el que se dio cuenta y me pasó el código que solucionaba mi "problema"

por supuesto que lo comparto con vosotros (NECKKITO me dijo que no tenia ningún problema), pues es la manera de aprender, de las soluciones aportadas por los usuarios a problemas conocidos.
ya vereis que es muy similar al que me aportaba josepf (mil gracias!)

Private Sub Comando0_Click()
Dim miSql As String
Dim rst As DAO.Recordset
miSql = "SELECT tempAtribut.ATRIBUT, tempAtribut.F9 FROM tempAtribut" _
& " WHERE tempAtribut.ATRIBUT=' '"
Set rst = CurrentDb.OpenRecordset(miSql)
If rst.RecordCount = 0 Then GoTo Salida
With rst
.MoveFirst
Do Until .EOF
.Edit
.Fields("ATRIBUT").Value = .Fields("F9").Value
.Update
.MoveNext
Loop
End With
Salida:
rst.Close
Set rst = Nothing
End Sub

bueno, si mas me despido,
no vemos pronto!
Saludos

Marc
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar