Question

J'ai donc une forme que je veux que l'utilisateur à utiliser pour mettre à jour plusieurs tables avec. Je ne veux pas la forme à être lié aux tables, comme je préférerais le faire avec VBA (je pense, je ne sais pas).

Voici donc un petit exemple de table

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

Alors, voilà comment je mis les tables en place. Tous ces textes / boîtes OHC existent sur une table, et je voudrais pouvoir enregistrer ces données de celle-ci forme à toutes les tables relatives avec un bouton clic.

Alors quelqu'un peut me aider à ce qui suit:

Si j'ai cette forme non liée remplir après un bouton Créer un nouveau clic, comment puis-je dire des zones de texte cachés (qui sont idéalement pour contenir les " « numéros d'identification), pour remplir les nouveaux numéros d'identification (numéros d'auto-), pour chacune des tables, en eux, afin que je puisse attribuer une instruction UPDATE SQL à un clic de bouton SAVE, dans la VB pour enregistrer les données?

Suis-je le configurer de sorte que je viens de la « table d'échange » (aucune idée pourquoi je l'ai nommé que) Remplit les numéros d'identification pour les autres tables, au lieu de vice versa?

Vais-je sur ce dans le mauvais sens

EDIT:

Je voulais juste vous donner un exemple pour voir si ce que je voulais faire est possible avec plusieurs tables (en fin de compte plusieurs clés) sur une forme, et si oui, comment est-il différent de le faire avec une forme / tableau : J'utilise l'approche non liée beaucoup à cause des formes que je dois construire, et la nécessité de paramètres constamment d'une forme Pas à l'autre dans la VBA. Je pense qu'il est plus rapide de le coder moi-même? Donc, pour ce concept, je l'ai toujours une zone de texte caché sur la forme qui a généralement le IDnumber de la table relative. Donc, de cliquer sur Enregistrer serait tout simplement besoin d'un simple SQL = * WHERE Tbl_ID = frmID idée un peu.

Tout ce que je me demandais ce que ces questions?

Lorsque vous exécutez une instruction INSERT, fait le numéro d'identification doit être présent dans l'état ou accèdera simplement attribuer le prochain rapport pour vous lorsque vous exécutez?

Dans le cas contraire Compte tenu de la méthode ci-dessus, comment puis-je déterminer ce nombre (ID que je dois utiliser) moi-même, avec le code?

Une autre question? Comment vaincre vous le défilement de molette de la souris grâce à la fonction d'enregistrements sur une forme liée?

Était-ce utile?

La solution

Je vois ce que vous dites, la formulation était étrange, mais je ne vois où vous goign avec cela.

est ce que vous avez:

  • Vous avez une forme non liée qui n'est pas liée à une table
  • Cette forme non liée qui est en aucun cas lié à une table en vous sera conçu en ajoutant des zones de texte et combo également des boîtes et des boutons
  • Au sein de ces zones de texte que vous avez des zones de texte qui vont stocker l'ID (La valeur clé) de la ligne. Alors que lorsque vous faites enregistrer le numéro d'identification est remis à la zone de texte
  • Une fois que le numéro d'identification est défini sur ce champ caché, vous pouvez publier des mises à jour à toutes les tables qui ont besoin de ce numéro d'identification

Est-ce que son droit? Dans ce cas, il est très simple. Tout ce que vous avez à faire est une fois que vous cliquez sur le « Créer un bouton » exécuter l'insert, quelque chose à cet effet:

 ' 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

Ensuite, vous émettez une autre commande pour saisir l'IDENTITÉ arrière, à savoir votre ID:

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

Vous pouvez toujours obtenir une identité avec SELECT @@ IDENTITY

dans votre code derrière vous définissez la zone de texte à la valeur de SELECT @@ IDENTITY. Je ne l'ai pas fait dans l'accès plus de 5 ans mais je me souviens d'avoir fait quelque chose comme ça. Une fois que vous avez cette identité que vous placez dans votre zone de texte caché. Cela vous aidera à effectuer vos mises à jour qui utilisent cette identité.

Voici un bon endroit pour commencer: http://support.microsoft.com/kb/815629 Voici un autre excellent article qui peut vous aider à: http://support.microsoft.com/kb/815629

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top