ربط نموذج واحد على جداول متعددة، وتوفير البيانات عند النقر

StackOverflow https://stackoverflow.com/questions/1834307

سؤال

لذلك لدي نموذج أريد استخدام المستخدم لتحديث جداول متعددة مع. لا أريد أن يكون النموذج مرتبط بالجداول، حيث كنت أفضل القيام بذلك مع VBA (أعتقد، لا أعرف).

حتى هنا هو مثال طاولة صغيرة

acretable.

UserID
First
Middle
Last
Division
Title

المعدات

EquipID
AssignedLaptop
Model
Barcode

softtable.

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

تبادل

UserID
SoftID
EquipID

فهذه هي الطريقة التي أقوم بتعيين الطاولات. تحتوي جميع صناديق النص / CMB هذه على جدول واحد، وأود أن أكون قادرا على حفظ هذه البيانات من هذا النموذج واحد إلى جميع الجداول النسبية بنقرة زر.

لذلك يمكن لأي شخص مساعدتي في ما يلي:

إذا كان لدي هذا النموذج غير المنضبط بعد كتابة زر "إنشاء جديد"، فكيف يمكنني إذن أن أخبر صناديق النص المخفية (أي من الناحية المثالية لاحتواء أرقام الهوية)، بملء أرقام معرف جديدة (أرقام السيارات)، لكل من الجداول، فيها، حتى أتمكن من تعيين عبارة SQL التحديث إلى زر حفظ، في VB لحفظ البيانات؟

هل يمكنني إعداده حتى أكون "جدول Exchange" فقط (بدون فكرة لماذا قمت بتسمية ذلك) بملء أرقام الهوية للجداول الأخرى، بدلا من تأشيرة Versa؟

هل سأذهب إلى هذه الطريقة الخطأ

تعديل:

كنت أحاول فقط أن أقدم لك مثالا لمعرفة ما إذا كان ما أحاول القيام به هو ممكن مع جداول متعددة (مفاتيح متعددة في النهاية) على شكل واحد، وإذا كان الأمر كذلك كيف يختلف عن القيام بذلك باستخدام نموذج / جدول: أستخدمه النهج غير المنقول الكثير بسبب النماذج التي يجب أن أبنيها، والحاجة إلى معلمات PAS باستمرار من نموذج إلى التالي في VBA. أعتقد أنه أسرع لرمزه بنفسي؟ لذلك بالنسبة لهذا المفهوم، لدي دائما مربع نص مخفي على النموذج الذي يحتوي عادة على IDN TRUMBER من الجدول النسبي. لذلك من النقر فوق حفظ سوف تحتاج فقط بسيطة SQL = * WHERE Tbl_ID = frmID فكرة كيندا.

كل ما كنت أتساءل هل هذه الأسئلة؟

عند تشغيل إدراج، هل يجب أن يكون رقم المعرف موجودا في العبارة أو سيقوم بالوصول إلى ما عليك سوى تعيين أحد الأقارب التالي لك عند التنفيذ؟

إذا لم يكن الأمر في عدم النظر في الطريقة أعلاه، كيف يمكنني تحديد هذا الرقم (معرف أحتاج إلى استخدامه) بنفسي، برمز؟

سؤال آخر؟ كيف يمكنك هزيمة عجلة الماوس من خلال وظيفة السجلات على شكل ملزم؟

هل كانت مفيدة؟

المحلول

أرى ما تقوله، كان الصياغة غريبا على هذا ولكني أرى أين أنت جوين مع هذا.

هذا هو ما لديك:

  • لديك نموذج غير منضم غير مرتبط بأي جدول
  • سيتم تصميم هذا النموذج غير المحدود الذي لا يرتبط بأي حال من الأحوال بأي جدول من خلال إضافة بعض صناديق النص وأيضا صناديق وأزرار التحرير والسرد
  • ضمن مربع النص هذه لديك بعض صناديق النصوص التي ستتخزين المعرف (القيمة الرئيسية) للصف. بحيث يتم تعيين رقم تحفظ رقم المعرف مرة أخرى إلى مربع النص
  • بمجرد تعيين رقم المعرف على هذا الحقل المخفي، يمكنك بعد ذلك إصدار تحديثات لجميع الجداول التي تحتاج إلى رقم المعرف هذا

هل هذا يبدو صحيحا؟ إذا كان الأمر كذلك هو بسيط جدا. كل ما عليك فعله هو بمجرد النقر فوق "إنشاء زر" تنفيذ الإدراج، شيء لهذا يحدث:

 ' 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

ثم تصدر أمرا آخر للاستيلاء على الهوية، وهما هويتك:

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

يمكنك دائما الحصول على هوية مع تحديد الهوية

لذلك في التعليمات البرمجية الخاصة بك خلفك تعيين مربع النص إلى قيمة تحديد @ @. لم أفعل الوصول خلال أكثر من 5 سنوات ولكني أتذكر القيام بشيء مثل هذا. بمجرد أن يكون لديك هذه الهوية تضعها في صندوق النص المخفي الخاص بك. سيساعدك ذلك في إجراء التحديثات التي تستخدم هذه الهوية.

هنا المكان الجيد للبدأ: http://support.microsoft.com/kb/815629.فيما يلي مقالة رائعة أخرى قد تساعدك: http://support.microsoft.com/kb/815629.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top