سؤال

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

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

من الغريب بعض الشيء أفترض ، لكنه سيعطيهم بالضبط ما يريدون ، والجزء الوحيد الذي لست متأكدًا منه ، هو "تحديد السجل الذي أريد استخدامه في VBA بالضبط"

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

المحلول

يمكنك تغيير SQL لكل نموذج فرعي لقراءة:

SELECT TOP 1 ID, F1, F2 From Table

SELECT TOP 2 From Table WHERE ID NOT IN (SELECT TOP 1 ID From Table)

SELECT TOP 3 From Table WHERE ID NOT IN (SELECT TOP 2 ID From Table)

<...>

SELECT TOP 10 From Table WHERE ID NOT IN (SELECT TOP 9 ID From Table)

أو ، رؤيتك لديك بالفعل مجموعة غريبة إلى حد ما ، يمكنك كتابة كل معرف إلى واحد من 10 عناصر تحكم مربع نص مخفية باستخدام مجموعة سجلات ، واستخدام كل من مربعات النص هذه كحقل رئيسي للربط مع معرف حقل رابط الطفل .

يعد Link Master Field و Link Child Field خصائص للتحكم الفرعي ، وليس النموذج الموجود.

alt text http://ltd.remou.com/linkchildlinkmaster.png

نصائح أخرى

إذا فهمت طلبك بشكل صحيح ، يمكنك أن تفعل شيئًا كهذا.

هيكل الجدول

ID Autonumber,
Col1 Text

vbcode

Private Sub Command0_Click()
Dim rec As Recordset
Dim id As Integer

    Set rec = CurrentDb.OpenRecordset("SELECT TOP 10 * FROM Table1")

    While Not rec.EOF
        id = rec.Fields("ID")
        rec.MoveNext
    Wend
End Sub

تعاملان عبارة SQL باعتبارها تعريفًا مستمراً ، أي مجموعة من السجلات (مجموعة السجلات) التي يمكنك معالجتها كما لو كانت جدولًا.

Dim cnn As ADODB.Connection
Dim pseudoTable As ADODB.Recordset
Dim strSQL As String

    Set cnn = CurrentProject.Connection
    Set pseudoTable = New ADODB.Recordset

    strSQL = "SELECT Title FROM realTable where realID < 1000;"
    pseudoTable.Open strSQL, cnn, adOpenStatic, adLockOptimistic
    If Not pseudoTable.BOF And Not pseudoTable.EOF Then
        pseudoTable.MoveFirst
        Do Until pseudoTable.EOF
            ' do something with the table
            pseudoTable.MoveNext
        Loop

يجب أن يمنحك الرمز أعلاه بداية جيدة.

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