Makale numarası: 147739 - Son Gözden Geçirme: 11 Ekim 2006 Çarşamba - Gözden geçirme: 2.3

Nasıl yapılır: MS Access DAO kullanan bir QueryDef'i Al

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Hepsini aç | Hepsini kapa

Özet

Microsoft Excel sürüm 97 ve 7.0, veri erişim nesneleri (DAO) Visual Basic for Applications, Microsoft Access'ten QueryDef sonuçlarını almak için kullanabilirsiniz. Bu makalede bunun nasıl yapılacağı gösterilmektedir.

Daha fazla bilgi

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna satılabilirlik veya belirli bir amaca uygunluk zımni garantileri de dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir, ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler. Bu makalede, Microsoft Office 95 Professional'la bulunan Northwind veritabanını kullanır. Varsayılan Seçenekler'i seçtiyseniz, veritabanı \Msoffice\Access\Samples klasöründe bulunur. Northwind veritabanı farklı bir klasörde yer alıyorsa, çalıştırmadan önce sağlanan kodu girin.

Microsoft Office 97'de varsayılan Northwind veritabanını \Program Files\Microsoft Office\Office\Samples\Northwind.mdb yoludur.

Bir QueryDef, Microsoft Access'te oluşturulan ve veritabanı dosyası ile kaydedilir. Bir sorgu oluşur ve olabilir veya ölçütleri içerebilir.

Not: "kullanıcı tanımlı türü tanımlı değil" hatası alırsanız, bir modül sayfasına etkinleştirme, başvurular, Araçlar menüsünden Seçenekler'ı tıklatın ve onay kutusu Microsoft DAO 3.0 Nesne Kitaplığı'nı tıklatın.

Microsoft Access'ten bir QueryDef sonuçlarını alma işlemi beş adıma şöyledir:
  1. Bir veritabanı nesnesi oluşturur.
  2. Bir QueryDef nesnesi oluşturur.
  3. Bir Recordset nesnesi oluşturun.
  4. (Isterseniz), üstbilgileri almak.
  5. Veri tablosundan alır.
Verileri aldıktan sonra .Close komutları yayımlayarak açtığınız tüm nesnelerini kapatmalısınız.
   Sub GetQueryDef()
       'This sub will get data from an Existing QueryDef in the Northwind
       'database and place the data on sheet2.

         Dim Db As Database
         Dim Qd As QueryDef
         Dim Rs As Recordset
         Dim Ws As Object
         Dim i As Integer
      Dim Path as String

      'Set the Path to the database. This line is useful because
      'if your database is in another location, you just need to change
      'it here and the Path Variable will be used throughout the code.
      '
      'If you're using Microsoft Office 97, the line should read:
      '
      'Path = "C:\Program Files\Microsoft
      'Office\Office\Samples\Northwind.mdb"
      '
      Path = "C:\Msoffice\Access\Samples\Northwind.mdb"

       'Set Ws
       Set Ws = Sheets("Sheet1")

       'This set of code will activate Sheet1 and clear any existing data.
       'After clearing the data, it will select cell A1.
       Ws.Activate
       Range("A1").Activate
       Selection.CurrentRegion.Select
       Selection.ClearContents
       Range("A1").Select

       'Set the Database and QueryDef. This QueryDef exists in the
       'database.
       Set Db = Workspaces(0).OpenDatabase(Path, ReadOnly:=True, _
         Exclusive:=False)
       Set Qd = Db.QueryDefs("Invoices")

       'Create a new Recordset from the Query based on the stored
       'QueryDef.
       Set Rs = Qd.OpenRecordset()

       'This loop will collect the field names and place them in the first
       'row starting at "A1."
       For i = 0 To Rs.Fields.Count - 1
           Ws.Cells(1, i + 1).Value = Rs.Fields(i).Name
       Next

      'This line simply sets the font to bold for the headers.
      Ws.Range(Ws.Cells(1, 1), Ws.Cells(1, Rs.Fields.Count)).Font.Bold _
          =True

      'The next line will get the data from the recordset and copy it
      'into the Worksheet (Sheet1).

       Ws.Range("A2").CopyFromRecordset Rs

      'This next code set will just select the data region and auto-fit
      'the columns
       Sheets("Sheet1").Select
       Range("A1").Select
       Selection.CurrentRegion.Select
       Selection.Columns.AutoFit
       Range("A1").Select

       Qd.Close
       Rs.Close
       Db.Close

   End Sub
				

Referanslar

Veri erişim nesnesi hakkında daha fazla bilgi için Visual Basic Düzenleyicisi'nden önce Office Yardımcısı'na [NULL]'ı tıklatın, "DAO" Ara'yı tıklatın ve sonra "Data Access Objects. genel bakış'ı" görüntülemek için tıklatın.

Not:, yardımcıyı gizli, Office Yardımcısı standart araç çubuğu düğmesini tıklatın. Yardımcıyı sorgunuzu yanıtlamaya bağlanamıyorsa, lütfen Microsoft Knowledge Base'de aşağıdaki makaleye bakın:
176476  (http://support.microsoft.com/kb/176476/EN-US/ ) OFF: Office Yardımcısı Visual Basic sorulara yanıt vermek.
Veri erişim nesneleri (Microsoft Excel sürüm 7.0 hakkında daha fazla bilgi için Microsoft Excel Yardımı'nda ve türü <a2>Dizin</a2> sekmesini tıklatın:
DAO

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Excel 97 Standard Edition
  • Microsoft Excel 95 Standard Edition
Anahtar Kelimeler: 
kbmt kbdtacode kbhowto kbprogramming KB147739 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:147739  (http://support.microsoft.com/kb/147739/en-us/ )
Retired KB ArticleKullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.