Pregunta

Tengo un formulario que quiero que el usuario use para actualizar varias tablas.No quiero que el formulario esté vinculado a las tablas, ya que prefiero hacer esto con VBA (creo, no lo sé).

Así que aquí hay un pequeño ejemplo de mesa.

Tabla de usuario

UserID
First
Middle
Last
Division
Title

Equipar mesa

EquipID
AssignedLaptop
Model
Barcode

Tabla suave

SoftID
SoftwareName
License#
Custom (running sum to calculate how many licenses are left....another question)

Tabla de intercambio

UserID
SoftID
EquipID

Así es como preparé las mesas.Todos estos cuadros de texto/cmb existen en una tabla y me gustaría poder guardar estos datos de este formulario en todas las tablas relativas con solo hacer clic en un botón.

Entonces, ¿alguien puede ayudarme con lo siguiente?

Si hago que este formulario independiente se complete después de hacer clic en el botón Crear nuevo, ¿cómo puedo indicar a los cuadros de texto ocultos (que idealmente deben contener los " "números de identificación) que completen nuevos números de identificación (números automáticos) para cada uno de los tablas, en ellas, para que pueda asignar una instrucción SQL ACTUALIZAR a un clic en el botón GUARDAR, en el VB para guardar los datos?

¿Puedo configurarlo para que solo la "tabla de intercambio" (no tengo idea de por qué la nombré así) complete los números de identificación de las otras tablas, en lugar de viceversa?

¿Estoy haciendo esto de manera equivocada?

EDITAR:

Solo estaba tratando de darle un ejemplo para ver si lo que estaba tratando de hacer es posible con varias tablas (en última instancia, varias claves) en un formulario y, de ser así, en qué se diferencia de hacerlo con un formulario/tabla:Utilizo mucho el enfoque independiente debido a los formularios que tengo que crear y la necesidad de pasar constantemente parámetros de un formulario al siguiente en VBA.¿Creo que es más rápido codificarlo yo mismo?Entonces, para este concepto siempre tengo un cuadro de texto oculto en el formulario que generalmente tiene el número de identificación de la tabla relativa.Entonces, para hacer clic en guardar solo requeriría un simple SQL = * WHERE Tbl_ID = frmID un poco de idea.

¿Todo lo que me preguntaba eran estas preguntas?

Cuando ejecuta un INSERT, ¿el número de identificación debe estar presente en la DECLARACIÓN o el acceso simplemente le asignará el siguiente relativo cuando ejecute?

Si no está considerando el método anterior, ¿cómo puedo determinar este número (ID que necesito usar) con código?

¿Otra pregunta?¿Cómo se puede desactivar la función de desplazamiento de la rueda del mouse por los registros en un formulario encuadernado?

¿Fue útil?

Solución

Veo lo que está diciendo, redacción era extraño en esto, pero yo no ver dónde está goign con esto.

Esto es lo que tienes:

  • Usted tiene un formulario independiente que no está vinculada a ninguna tabla
  • Este formulario independiente que no es de ninguna manera vinculado a cualquier mesa será diseñado por usted mediante la adición de algunos cuadros de texto y los cuadros combinados y los botones
  • Dentro de estos cuadros de texto tiene algunos cuadros de texto que se van a almacenar el ID (El valor de la clave) de la fila. De manera que cuando se hace una guardar el ID número se vuelve a establecer en el cuadro de texto
  • Una vez que el número de ID se establece en este campo oculto a continuación, puede emitir cambios a todas las tablas que necesitan este número de identificación

¿Eso suena bien? Si es así, es muy simple. Todo lo que tiene que hacer es una vez que se hace clic en el "Crear botón" realizar la inserción, algo a este efecto:

 ' Command to Insert Records.
      Dim cmdInsert As New OleDbCommand()
      cmdInsert.CommandText = "INSERT INTO AutoIncrementTest (Description) VALUES (?)"
      cmdInsert.Connection = cnJetDB
      cmdInsert.Parameters.Add(New OleDbParameter("Description", OleDbType.VarChar, 40, "Description"))
      oleDa.InsertCommand = cmdInsert

A continuación, se emite otro comando para agarrar el IDENTIDAD hacia atrás, es decir, su identificación:

  ' Create another command to get IDENTITY value.
  cmdGetIdentity = New OleDbCommand()
  cmdGetIdentity.CommandText = "SELECT @@IDENTITY"
  cmdGetIdentity.Connection = cnJetDB

Siempre se puede obtener una identidad con SELECT @@ IDENTITY

Así que en su código detrás de configurar el cuadro de texto con el valor del SELECT @@ IDENTITY. No he hecho el acceso de más de 5 años pero recuerdo que hacer algo como esto. Una vez que tenga esta identidad que colocarlo en la caja de texto oculto. Esto le ayudará a realizar sus actualizaciones que usan esta identidad.

Aquí es un buen punto de partida: http://support.microsoft.com/kb/815629 Aquí es otra gran artículo que puede ayudarle a: http://support.microsoft.com/kb/815629

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top