Frage

So habe ich eine Form, die ich mag der Benutzer mit mehreren Tabellen zu aktualisieren, zu verwenden. Ich möchte nicht, das Formular an die Tische gebunden zu sein, wie ich würde lieber dies mit VBA (ich glaube, ich weiß es nicht).

Hier ist also ein Tischchen Beispiel

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

Das ist also, wie ich die Tabellen einrichten. All diese Texte / cmb-Boxen geben es auf einem Tisch, und ich möchte in der Lage sein, diese Daten zu speichern, die auf dieser einer Form in allen relativen Tabellen mit einem Klick.

So kann jemand mir helfen, mit dem folgenden:

Wenn ich das nicht gebundene Form nach einer neuen Schaltfläche Erstellen klicken bevölkert, wie kann dann sagen, ich verstecken Textfeldern (also im Idealfall sind die "„ID-Nummern enthalten), neue ID-Nummern zu füllen (auto-Zahlen) für jeder der Tabellen, in ihnen, so dass ich eine SQL-Anweisung UPDATE auf eine Schaltfläche SAVE Klicke zuweisen kann, in dem VB die Daten zu speichern?

Könnte ich es so einrichten, dass ich nur die „exchange table“ (keine Ahnung, warum ich nannte sie, dass) die ID-Nummern für die anderen Tabellen auffüllt, statt umgekehrt?

Bin ich dies über die falsche Art und Weise

EDIT:

Ich habe nur versucht, Ihnen ein Beispiel zu geben, um zu sehen, ob das, was ich versuche, mit mehreren Tabellen möglich ist, zu tun (letztlich mehrere Keys) auf einer Form, und wenn ja, wie es zu tun, es mit einer Form / Tabelle unterscheidet : auf den nächsten in der VBA verwende ich die Menge ungebundene Ansatzes, weil die Formen I bauen müssen, und die Notwendigkeit, ständig pas Parameter aus einem Formular. Ich denke, es ist schneller, es selbst zu codieren? Also, für dieses Konzept habe ich immer ein verstecktes Textfeld auf dem Formular, das in der Regel die IDNumber der relativen Tabelle hat. So würde klicken sparen nur eine einfache SQL = * WHERE Tbl_ID = frmID erfordern irgendwie Idee.

Alles, was ich habe mich gefragt, diese Fragen wurden?

Wenn Sie eine INSERT ausführen, wird die ID-Nummer in der Aussage sein müssen oder wird Zugriff zuweisen nur die nächste relative für Sie, wenn Sie ausführen?

Wenn nicht Unter Berücksichtigung der oben beschriebenen Methode, wie kann ich diese Zahl bestimmen (ID Ich brauche zu verwenden) selbst, mit dem Code?

Eine andere Frage? Wie sehen Sie das Mausrad blättern durch Datensätze Funktion auf einer gebundenen Form besiegen?

War es hilfreich?

Lösung

Ich sehe, was Sie sagen, Formulierung auf diese seltsam war, aber ich sehe, wo man mit dieser sind goign.

Dies ist, was Sie haben:

  • Sie haben ein ungebundenes Formular, das nicht auf einer Tabelle verbunden ist
  • Diese ungebundene Form, die in keine Weise mit Tabelle verknüpft ist, wird durch das Hinzufügen einiger Textfelder und auch Kombinationsfelder und Tasten
  • von Ihnen gestaltet werden,
  • Innerhalb dieser Textfelder Sie einige Textfelder haben, die die ID (Der Schlüsselwert) der Reihe speichern gehen. So dass, wenn Sie tun, um eine die ID-Nummer speichern zurück in das Textfeld gesetzt ist
  • Sobald die ID-Nummer zu diesem versteckten Feld gesetzt ist man dann Updates für alle Tabellen ausgeben kann, die diese ID-Nummer
  • müssen

Klingt das richtig? Wenn dies der Fall ist es sehr einfach. Alles, was Sie tun müssen, ist, wenn Sie auf den „Create-Knopf“ klicken Sie auf den Einsatz, etwas zu diesem Effekt führen:

 ' 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

Sie dann einen anderen Befehl ausgeben die IDENTITY zurück, nämlich Ihre ID greifen:

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

Sie können jederzeit eine Identität mit SELECT @@ IDENTITY bekommen

Also in Ihrem Code hinter Ihnen das Textfeld auf den Wert von SELECT @@ IDENTITY gesetzt. Ich habe keinen Zugriff auf mehr als 5 Jahren getan, aber ich erinnere mich, so etwas wie dies zu tun. Sobald Sie diese Identität legen Sie es in Ihrem versteckten Textfeld ein. Dies wird Ihnen helfen, Ihre Updates durchführen, die diese Identität nutzen.

Hier ist ein guter Anfang: http://support.microsoft.com/kb/815629 Hier ist ein weiterer großer Artikel, die Ihnen helfen können: http://support.microsoft.com/kb/815629

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top