Problemas al asociar id en registros access

Necesito de su ayuda ya que no se porque motivo no soy capaz de realizar los siguiente:

TIntervinientes(id(auto), idIntervención(numero), Profesional,)

SubFrmProfesionales basado en en TIntervinientes.

FProfesionales basado en TDatos solo con el campo id(auto) con un subformulario que es subFrmProfesionales basado en id con idIntervencion.

FDatos basado en TDatos que es donde introduzco todos los datos y para asociar lo profesionales puese un botón que me abre FProfesionales con el siguiente código:

Private Sub cmdProfesionales_Click()
 'Declaramos las variables
    Dim nProf As Long
        'Cojo el número de visita
    nProf = Nz(Me.id.Value, 0)
        'Si no hay número salimos
    If nProf = 0 Then Exit Sub
        'Cerramos el formulario actual
    DoCmd.OpenForm "FProfesionales", , , "[Id]=" & nProf
        'Situamos el enfoque en el primer campo a rellenar
    Forms!FProfesionales.subFrmProfesionales.Form.Profesional.SetFocus
End Sub

Al guardar no le pasa el número del id de FDatos para asociarlo a ese registro que estoy haciendo mal?

1 respuesta

Respuesta
1

Kike: De acuerdo a lo que explicas y yo deduzco y no sé sibien deducido es que no tienes necesidad de ningún código. Es decir si en TIntervinientes debe de haber un campo numérico que se corresponda con el IdProfesional de la Tabla de Profesionales (TDatos)

Si ese campo es el que tu llamas Profesional en TIntervenciones no necesitas añadir nada.

Si no lo es conviertelo en un IDProf o algo así que sea numerico.

Si insertas el SubFrmProfesionales en FDatos y los vinculas por ese Campo, en cada registro que muestres de FDatos se te deben de Mostrar todas las visitas de ese Profesional.

Otra cosa es que quieras añadir visitas en TIntervenciones porque lo quieras bloquear para añadir y modificar. En ese caso el mejor sitio para el botón sería el Subformulario.

No sé si las cosas van por ahí. Mis saludos >> Jacinto

Hola Jacinto,

Lo que pretendo es asociar es la TIntervinientes con TDatos es decir el registro que se cree en TIntervinientes vaya asociado al de TDatos.

El subformulario es un Form continuo donde digo si interviene uno o varios profesionales en ese registro guardado.

Kike: Si es que a cada Intervención le corresponden "Varios" Profesionales, el Planteamento sería al revés.

El Formulario principal debe ser el Intervención y el SubFormulario el de Profesionales, y la vinculación por el campo IdProfesional.

Ejemplo: Supongamos que queremos ver en un fin de mes las horas dedicadas del Dr. Santiago Urrutia en Intervenciones.

Personalmente le llamaria a la Tabla eso TIntervenciones y pondría.

IdIntervencion >>Auto >> Clave

Fecha >> Fecha Corta

HIniInterv >> Hora

HoraFinInterv >>Hora

IdProfesional

Con ésto >> Formulario Principal >> FIntervenciones

Otra Tabla >> TIntervProfesional

IdInterv >> Numerico no auto, para vincular con el IdInTervencion de TIntervenciones

IdProfesional >> Combo que tiene como Origen de Fila el IdProfesional y el Nombre (Solo para visualizar) de tu tabla TDatos

FechaInterv >> Sería la misma que la de arriba

HoraIni >> Hora

HoraFin >> Hora

HorasDedicadas >>Diferencia HoraFin

Pongo aquí la HoraIni y HoraFin porque se puede dar el Caso que la Intervención dure 6 Horas, el Dr. Alfa esté 6 Horas y el el Dr. Beta solo 1 hora...

De ahí luego de hacer una consulta sacariamos los datos que necesitemos

No sé si eso es lo que necesitas >> Mis saludos >> Jacinto

Quizás me estoy explicando mal, lo importante para mi son los registro de TDatos y con TIntervenciones lo que pretendo es asociar los profesionales al registro por eso baso el Formulario sobre TDatos solo con el id para pasarle el id que se creo al añadir un nuevo registro mediante codigo y luego baso el subformulario entre el id y idIntervencion del subformulario esa es la idea así cada vez que lo habra se que profesionales realizaron ese registro ya que puede ser uno solo o varios.

Lo raro de todo es que he llegado a casa y en mi ordenador me funciona correctamente y sin embargo en la oficina no me funcionaba.

Como puede ser debido esto?

Kike: Lo había interpretado como te he expuesto, y parece que no es así. Déjame releer con más atención tus textos y te comento. Mis saludos >> Jacinto

Kike: Solución que me parece más adecuada >>

Insertar SubFormulario en FDatos y Vincularlo por Id en FDatos con IdIntervencion en el Subformulario. Mis saludos >> Jacinto

Kike: En el Formulario emergente, inserta el Procedimiento Al Acivar registro

Private Sub Form_Current()
Me.TxtIntervencion = Forms!FDatos.Form.id
End Sub

En la propiedades >> Otras Ciclo Pones >>Todos los registros

He hecho un par de pruebas sin dificultades. Saludos >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas