Domanda

Ho una forma che voglio l'utente da utilizzare per aggiornare più tabelle con. Non voglio la forma di essere vincolato ai tavoli, come avrei preferito farlo con VBA (credo, non lo so).

Quindi, ecco un piccolo esempio tabella

usertable

UserID
First
Middle
Last
Division
Title

EquipTable

EquipID
AssignedLaptop
Model
Barcode

SoftTable

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

ExchangeTable

UserID
SoftID
EquipID

Questo è il modo ho impostato le tabelle su. Tutte queste caselle di testo / CMB esistono su un tavolo, e mi piacerebbe essere in grado di salvare questi dati da questo una forma a tutte le tabelle relative con un clic del pulsante.

Quindi, qualcuno mi può aiutare con il seguente:

Se ho questa maschera non associata popolano dopo un pulsante Crea nuova scatto, come allora posso dire caselle di testo nascosti (che sono in posizione ideale per contenere " "i numeri ID), per compilare nuovi numeri ID (auto-numeri), per ognuna delle tabelle, in loro, in modo che posso assegnare un'istruzione UPDATE SQL a un pulsante SAVE clic, in VB per salvare i dati?

Potrebbe impostare il tutto in modo che solo la "tabella di scambio" (idea del perché ho chiamato così) popola i numeri ID per le altre tabelle, anziché viceversa?

Sto andando su questo nel modo sbagliato

EDIT:

Stavo solo cercando di darvi un esempio per vedere se quello che stavo cercando di fare è possibile con più tabelle (in definitiva più chiavi) su una forma, e se sì in che cosa differisce dal farlo con una forma / tavolo : io uso l'approccio sacco non legato a causa delle forme devo costruire, e la necessità di parametri costantemente pas da una forma all'altra in VBA. Penso che sia più veloce di codice da solo? Così, per questo concetto ho sempre una casella di testo nascosto sulla forma che di solito ha l'IDnumber della tabella relativa. Quindi, per fare clic su Salva sarebbe solo bisogno di un semplice SQL = * WHERE Tbl_ID = frmID genere di idea.

Tutto quello che chiedevo erano queste domande?

Quando si esegue un INSERT, fa il numero ID deve essere presente nella dichiarazione o accederà solo assegnerà il prossimo relativo per voi quando si esegue?

In caso contrario Considerando il metodo di cui sopra, come posso determinare questo numero (ID ho bisogno di usare) me stesso, con il codice?

Un'altra domanda? Come si fa a sconfiggere la rotella di scorrimento del mouse attraverso la funzione record in forma legata?

È stato utile?

Soluzione

Vedo quello che stai dicendo, frase era strano su questo ma io non vedere dove si sta goign con questo.

Questo è quello che hai:

  • Hai una maschera non associata che non è legata a qualsiasi tavolo
  • Questa maschera non associata che non è in alcun modo collegato a qualsiasi tavolo sarà progettato da voi con l'aggiunta di alcune caselle di testo e anche caselle combinate e pulsanti
  • All'interno di queste caselle di testo si dispone di alcune caselle di testo che stanno per memorizzare l'ID (Il valore della chiave) della riga. In modo che quando si fa un salvare l'ID numero è impostato indietro alla casella di testo
  • Una volta che il numero ID è impostato su questo campo nascosto è quindi possibile rilasciare gli aggiornamenti di tutte le tabelle che hanno bisogno di questo numero ID

Fa questo diritto del suono? Se quindi è molto semplice. Tutto quello che dovete fare è una volta che si fa clic su "Crea Button" eseguire l'inserimento, qualcosa di questo tenore:

 ' 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

Quindi si invia un altro comando per afferrare l'identità Torna, vale a dire il vostro ID:

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

È sempre possibile ottenere un'identità con SELECT @@ IDENTITY

Quindi nel tuo codice dietro si imposta la casella di testo per il valore di SELECT @@ IDENTITY. Non ho fatto l'accesso a più di 5 anni, ma mi ricordo di aver fatto qualcosa di simile. Una volta che avete questa identità si inserisce nella vostra casella di testo nascosto. Questo vi aiuterà a eseguire gli aggiornamenti che utilizzano questa identità.

Ecco un buon punto di partenza: http://support.microsoft.com/kb/815629 Ecco un altro grande articolo che può aiutare: http://support.microsoft.com/kb/815629

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top