Query ve ADO, ASP'Kimden [NULL]'ı kullanarak güncelleştirme, Excel'in verileri nasıl

Makale çevirileri Makale çevirileri
Makale numarası: 195951 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede, sorgu ve güncelleştirme bilgileri, bir Active Server Pages (ASP) sayfasından ActiveX Data Objects (ADO) kullanarak bir Excel elektronik tablosu gösterilmiştir. Bu makalede ayrıca bu tür bir uygulama ile ilişkili sınırlamaları anlatılmaktadır.

ÖNEMLI: ASP/ADO uygulamalar, çok kullanıcılı erişim desteği olmasa da, bir Excel elektronik tablosu yok. Bu nedenle, çok kullanıcılı eşzamanlı erişim sorgulamak ve bu bilgileri güncelleştirmek için bu yöntemi desteklemiyor.

Daha fazla bilgi

Bu örnek için bir Excel Elektronik tablonuzda veriye erişmek için <a0></a0>, Excel için Microsoft ODBC sürücüsü'ni kullanın. Excel Elektronik tablonuzu bir adlandırılmış aralık oluşturarak, veriye erişmek için bir tablo oluşturun.

Örnek uygulama oluşturmak için gereken adımları

  • ADOtest.xls Excel dosyasının Sayfa1'de aşağıdaki verileri oluşturun:

    Bu tabloyu kapaBu tabloyu aç
    column1column2column3
    RR Bu15
    bbSınama20
    EEWorks25

    Not Excel Elektronik tablonuzda bir sütun hem metin hem de sayılar içeriyorsa, Excel ODBC sürücüsü veri türü sütun olmalıdır doğru olarak yorumlayamaz. Bir sütunun tüm hücreleri aynı veri türü olduğundan emin olun. Her bir sütun hücresine aynı tür veya karma arasında "metin" ve "Genel" sahip değilse, aşağıdaki üç hataları oluşabilir:
    1. Microsoft OLE DB Provider for ODBC sürücüleri hata '80040e21'
      Istek özellikleri bu ODBC sürücüsü tarafından desteklenebilir değil.
    2. ODBC Sürücüler için Microsoft OLE DB Sağlayıcısı hatası '80004005'
      Zevklidir anahtar olarak kullanmak için aranabilir hiçbir sütun içerdiğinden sorgu güncelleştirilemez.
    3. ODBC Sürücüler için Microsoft OLE DB Sağlayıcısı hatası '80004005'
      Sorgu tabanlı güncelleştirme başarısız oldu. Güncelleştirilecek satır bulunamadı.
  • Bir adlandırılmış aralık myRange1, Elektronik tablonuzda oluşturun:

    1. Verilerinizin bulunduğu alan satırları ve sütunları seçin.
    2. Ekle menüsünden Ad'ın üzerine gelin ve Tanımla'yı tıklatın.
    3. Ad aralığının adı myRange1 girin adı.
    4. Tamam'ı tıklatın.
    Adlandırılmış aralık myRange1 aşağıdaki verileri içerir:

    Bu tabloyu kapaBu tabloyu aç
    column1column2column3
    RRBu15
    bbSınama20
    EEWorks25


    Not ADO, bir Excel sorgusu ilk satırı sütun başlıkları bulunduğunu varsayar. Bu nedenle, adlandırılmış aralık, sütun başlıklarını eklemeniz gerekir. Farklı bir DAO davranış budur.

    Not Sütun başlıkları, bir sayı olamaz. Excel sürücüsü, bunları yorumlayamadığı ve bunun yerine, bir hücre başvurusunu verir. Örneğin, bir sütun başlığı olarak "F1" misinterpreted.
  • Bir ODBC sistem veri kaynağı adı (ADOTest.xls dosyaya işaret DSN) oluşturun.
    1. ODBC Denetim Masası'ndan açma yönetici.
    2. Sistem DSN sekmesinde Ekle'yi tıklatın.
    3. Microsoft Excel Driver (*.xls) seçin ve sonra Finish'i (son) tıklatın. Bu seçenek yoksa, Microsoft ODBC sürücüsü Excel için Excel kurulumundan yüklemeniz gerekir.
    4. ADOExcel için veri kaynağı adını seçin.
    5. Sürüm Excel sürümüne doğru olarak ayarlandığından emin olun.
    6. "Çalışma kitabı Seç..."'ı tıklatın, için ADOTest.xls göz dosya ve Tamam'ı tıklatın.
    7. Tıklatın "Seçenekleri >>" düğmesini tıklatın ve "Salt okunur" onay kutusunu temizleyin.
    8. Tamam'ı tıklattıktan sonra yine Tamam'ı tıklatın.
  • Izinler ADOTest.xls dosyasını gösterir.
Active Server Sayfası'nı anonim olarak erişilebilen, anonim hesabın (ıusr_ <machinename>) en az olduğundan emin olmanız gerekir (RW) okuma/yazma erişimi elektronik tablo. Elektronik tablodaki bilgileri silmek isterseniz, uygun izinleri gerekir.

Active Server Sayfası'nı için erişim kimlik doğrulaması, uygulamanızın erişen tüm kullanıcılara uygun izinlere sahip olduğunuzdan emin olmak gerekir.

Not Elektronik tabloda uygun izinleri ayarlamak, hata iletisi aşağıdakine benzer alırsınız:

ODBC Sürücüler için Microsoft OLE DB Sağlayıcısı hatası '80004005'

[Microsoft][ODBC Excel sürücüsü] Microsoft Jet Veritabanı Altyapısı '(bilinmiyor)' dosyasını açamıyor. Dosya bir başka kullanıcı tarafından özel kullanımda açılmış veya verileri görebilmeniz için yetkiniz yok.
  1. Yeni bir ASP sayfası oluşturun ve aşağıdaki kodu yapıştırın:
          <!-- Begin ASP Source Code -->
          <%@ LANGUAGE="VBSCRIPT" %>
          <%
            Set objConn = Server.CreateObject("ADODB.Connection")
            objConn.Open "ADOExcel"
    
            Set objRS = Server.CreateObject("ADODB.Recordset")
            objRS.ActiveConnection = objConn
            objRS.CursorType = 3                    'Static cursor.
            objRS.LockType = 2                      'Pessimistic Lock.
            objRS.Source = "Select * from myRange1"
            objRS.Open
       %>
       <br>
       <%
          Response.Write("Original Data")
    
          'Printing out original spreadsheet headings and values.
    
          'Note that the first recordset does not have a "value" property
          'just a "name" property.  This will spit out the column headings.
    
          Response.Write("<TABLE><TR>")
          For X = 0 To objRS.Fields.Count - 1
             Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")
          Next
          Response.Write("</TR>")
          objRS.MoveFirst
    
          While Not objRS.EOF
             Response.Write("<TR>")
             For X = 0 To objRS.Fields.Count - 1
                Response.write("<TD>" & objRS.Fields.Item(X).Value)
             Next
             objRS.MoveNext
             Response.Write("</TR>")
          Wend
          Response.Write("</TABLE>")
    
          'The update is made here
    
          objRS.MoveFirst
          objRS.Fields(0).Value = "change"
          objRS.Fields(1).Value = "look"
          objRS.Fields(2).Value = "30"
          objRS.Update
    
          'Printing out spreadsheet headings and values after update.
    
          Response.Write("<br>Data after the update")
          Response.Write("<TABLE><TR>")
          For X = 0 To objRS.Fields.Count - 1
             Response.Write("<TD>" & objRS.Fields.Item(X).Name & "</TD>")
          Next
          Response.Write("</TR>")
          objRS.MoveFirst
    
          While Not objRS.EOF
             Response.Write("<TR>")
             For X = 0 To objRS.Fields.Count - 1
                Response.write("<TD>" & objRS.Fields.Item(X).Value)
             Next
             objRS.MoveNext
             Response.Write("</TR>")
          Wend
          Response.Write("</TABLE>")
    
          'ADO Object clean up.
    
          objRS.Close
          Set objRS = Nothing
    
          objConn.Close
          Set objConn = Nothing
       %>
       <!-- End ASP Source Code -->
    					
  2. Kaydetmek ve Active Server Sayfası'nı adlandırın ve sonra da bunu tarayıcıda görüntülemek. Aşağıdaki görürsünüz:
          Original Data:
    
          column1    column2    column3
          -----------------------------
    
          rr         this       30
          bb         test       20
          tt         works      25
    
    
          Data after the update:
    
          column1    column2    column3
          -----------------------------
    
          change     look       30
          bb         test       20
          tt         works      25
    					
Not Güncelleştirme, bir adlandırılmış aralık ilk satırı (sonra başlıkları) gerçekleştirildi.

Referanslar

Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
190195Güvenlik açığının nasıl ExtractInformation DAO ile Excel sayfası kaynağı

Özellikler

Makale numarası: 195951 - Last Review: 1 Temmuz 2004 Perşembe - Gözden geçirme: 5.2
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ActiveX Data Objects 1.0
  • Microsoft ActiveX Data Objects 1.5
  • Microsoft ActiveX Data Objects 2.0
  • Microsoft ActiveX Data Objects 2.1 Service Pack 2
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft Active Server Pages 4.0
  • Microsoft Data Access Components 2.5
Anahtar Kelimeler: 
kbmt kbcode kbhowto kbmdacnosweep KB195951 KbMttr
Machine-translated Article
Ö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:195951

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com