Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

duda sobre acces??

Estas en el tema de duda sobre acces?? en el foro de Bases de Datos General en Foros del Web. Hola chic@s!!!!! Mi problema es el siguiente: Tengo una tabla en access con dos columnas: la columna A me indica un código de referencia y ...
  #1 (permalink)  
Antiguo 20/01/2004, 05:04
 
Fecha de Ingreso: diciembre-2003
Ubicación: España/en el curro
Mensajes: 117
Antigüedad: 20 años, 4 meses
Puntos: 0
Pregunta duda sobre acces??

Hola chic@s!!!!!

Mi problema es el siguiente:
Tengo una tabla en access con dos columnas: la columna A me indica un código de referencia y la columna B me da una serie de códigos auxiliares que hay dentro de A, es decir, hay unos codigos (A) que tienen dentro otros códigos (B), con lo cual en la columna A se repite cada código tantas veces como subcodigos lo compogan en B.

Bueno despues de esta parrafada de codigos, os explico lo que quiero, necesito alterar los codigos de la columna B, cambiandoles el nombre, y este nombre deberá de ser el de la columna que contiene el codigo A mas un numero, por ejemplo a-1.

¿Alguien sabe como puedo hacer esto en access)

Gracias
  #2 (permalink)  
Antiguo 20/01/2004, 07:18
 
Fecha de Ingreso: enero-2003
Mensajes: 25
Antigüedad: 21 años, 3 meses
Puntos: 0
Vamos a ver si te he entendido bien....

La clave de la tabla está formada por los campos A y B ¿No es así?

Pues entonces sería algo así:
Código:
Update tablaX set B=A-1
El problema es que al existir varias veces el registro A, te va a dar el mismo codigo B varias veces, osea, clave duplicada.

Por ejemplo:

A=1, B=2 => B=A-1 -> 0
A=1, B=3 => B=A-1 -> 0 (independientemente de B)

¿Para que quieres hacer eso?
__________________
---- Salu2 ----

Última edición por randomize; 20/01/2004 a las 07:20
  #3 (permalink)  
Antiguo 20/01/2004, 07:27
 
Fecha de Ingreso: diciembre-2003
Ubicación: España/en el curro
Mensajes: 117
Antigüedad: 20 años, 4 meses
Puntos: 0
hola Randomize!

Es un poco complicado de explicar, pero voy a intentarlo. Esta base de datos esta creada mediante la exportación desde otro programa ,el Presto, ¿no se si lo conoces?. Bueno el caso es que hay una serie de registros (los de la tabla A) que estan compuestos por otra serie de registros los de la tabla B, por ponerte un ejemplo a un registro que en el campo A tiene "PC" y en el campo B tiene "Pantalla", luego habra otro registro que sera "PC" en A y "CPU" en "B" así hasta completar todos los componentes de un pc.

El problema viene en que los códigos de la columna B , por temas de funcionamiento del Presto, me conviene que sean el codigo del campo A más un numero correlativo para que no se repita , por ejemplo: PC-1,PC-2,PC-3 y lo que no consigo es poner ese numero de forma correlativa ya que access por lo que se no me deja hacer procedimientos almacenados
  #4 (permalink)  
Antiguo 21/01/2004, 07:06
 
Fecha de Ingreso: enero-2003
Mensajes: 25
Antigüedad: 21 años, 3 meses
Puntos: 0
Bueno...vamos a ver...el acces efectivamente no tiene PA's pero tiene modulos que son muy utiles (si sabes programar en VBA)

Te he hecho un pequeño ejemplo para que lo veas:
Código:
Public Function Crear() As Boolean

Dim Rc As DAO.Recordset
Dim Cont As Long
Dim v_Anterior As String

Set Rc = CurrentDb.OpenRecordset("Select * from Tabla1 order by CodigoA")

If Not Rc.EOF Then
    Rc.MoveLast: Rc.MoveFirst
    v_Anterior = "######"
    While Not Rc.EOF
        If Rc!CodigoA <> v_Anterior Then
            v_Anterior = Rc!CodigoA
            Cont = 1
        End If
        CurrentDb.Execute ("UPDATE Tabla1 SET NuevoB = '" & Rc!CodigoA & CStr(Cont) & "' Where CodigoA = '" & Rc!CodigoA & "' And CodigoB = '" & Rc!CodigoB & "'")
        Cont = Cont + 1
        Rc.MoveNext
    Wend
End If

End Function
Estoy actualizando un campo nuevo que me he creado en la tabla para poder realizar las actualizaciones (no se puede actualizar directamente en el campo porque si no no funciona el codigo).

Para ejecutarlo dale a F5 en el mismo editor del modulo donde lo has creado.

Mira a ver si lo entiendes. Si tienes dudas mandame un mp. ;)

Salud.
__________________
---- Salu2 ----

Última edición por randomize; 21/01/2004 a las 07:07
  #5 (permalink)  
Antiguo 21/01/2004, 07:11
 
Fecha de Ingreso: diciembre-2003
Ubicación: España/en el curro
Mensajes: 117
Antigüedad: 20 años, 4 meses
Puntos: 0
De acuerdo

Muchas gracias Randomize!!

La verdad es que me estaba complicando demasiado y tu tienes razón, porque habia hecho un pequeño programa en visual basic que me hacia más o menos lo que tú me enseñaste en tu código.

Gracias

Un saludo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:25.