ACC2000: Rapor, Excel, çıktı olduğunda kesildi not alan

Makale numarası: 208801 - Bu makalenin geçerli olduğu ürünleri görün.

Gelişmiş: Uzman kodlama, birlikte çalışabilirlik ve çok kullanıcılı becerileri gerektirir.

Bu makalenin Microsoft Access 2002 sürümü için bkz: 294286.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Microsoft Excel bir raporun çıktısını, herhangi bir kısa not alanı en fazla 255 karakterden kesilir. Rapor Önizleme sırada, MS Excel ile Çözümle komutu tıklattığınızda, bu davranışı da görebilirsiniz.

Neden

Excel'de, metin ve hücre içeriğinin uzunluğu en fazla 32.000 karakterdir. Ancak, Access bir raporu, metin ve hücre içeriğinin uzunluğu en fazla 255'tir, Excel 5.0/95 biçimine dönüştürür.

Çözüm

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.

Yöntem 1

Temel tablo veya sorgudaki Excel 2000 dosya biçimine verme. Bunu yapmak için şu adımları izleyin:
  1. Veritabanı penceresinde tablo veya raporun temel aldığı sorguyu seçin.
  2. Dosya menüsünde Ver ' i tıklatın.
  3. <a1>Tablo</a1> '< Tablo Adı >' içinde Ver iletişim kutusunda, Kayıt türü kutusundan Microsoft Excel 97-2000 (*.xls) seçin.
  4. Tabloyu dışa aktarmak için Kaydet ' i tıklatın.

Yöntem 2

Not alanı 250 karakter dizeleri bölmek rapordaki metin kutuları oluşturun. Bu dize, rapor, çıktı sonra yeniden birleştirmek.

Örneğin, Notlar adlı bir kısa not alanı olan ve bazı kayıtlar, bu alanın içeriğini ise 700 karakterden uzun varsayalım. Metin kutuları için denetimin kaynağı olarak her üç aşağıdaki deyimleri rapordaki üç metin kutusu oluşturabilirsiniz:
=Mid([Notes],1,250)

=Mid([Notes],251,250)

=Mid([Notes],501,250)
Raporu bir elektronik tabloya, çıktı sonra <a0>Not</a0> alanının kesimleri yeniden birleştirmek. Örneğin, ilk kaydının <a1>Not</a1> alanının kesimleri hücrelerde B2, C2 ve D2 sırasıyla görüntülenir. Not alanı, E2 başka bir hücresine aşağıdaki formülü yazarak yeniden birleştirmek:
=CONCATENATE(B2,C2,D2).)
Sonra bu formül diğer tüm kayıtlar için <a2>Notlar</a2> alanını yeniden birleştirmek için E sütunundaki hücreleri kopyalayabilirsiniz.

Formülün kullanmaya çalıştığınızda girilmezse BIRLEŞTIR fonksiyonunu verir unutmayın.
=CONCATENATE(B2:D2).)
Her hücrenin içeriği art arda eklenmiş sonucu eklemek istediğiniz adres ayrı olarak listeleniyor olması gerekir.

Birden çok birkaç metin kutuları oluşturmak için gerekli kolaylaştırır <a0>Not</a0> alanında verilerin uzunluğu, bu metin kutuları oluşturulmasını otomatik hale getirmek için bir Visual Basic for Applications yordamı kullanabilirsiniz. Aşağıdaki örnek, bir yordam metin kutularını oluşturma rapor çıktısı ve metin kutusunun içeriğini yeniden birleştirmek için nasıl kullanılacağını gösterir.
  1. 1'Den 7'ye bu makalenin ilerisindeki "Adımlar için oluşturma davranışı" bölümündeki adımları izleyin.
  2. Tasarım görünümünde tblMemoOutput tabloyu temel alan yeni bir rapor oluşturun.
  3. KIMLIK alanı, raporun ayrıntı bölümüne sürükleyin.
  4. Raporu rptMemoOutput kaydedin.
  5. Yeni bir modülü açın ve aşağıdaki yordamı yazın:
    Function MemoSplitter(strReportName As String, _
       strFieldName As String, lngMemoLength As Long)
    
       Dim NewControl As Control
       Dim intLoopCount As Integer
       For intLoopCount = 0 To lngMemoLength / 250
    
          Set NewControl = CreateReportControl(strReportName, _
             acTextBox, acDetail)
          NewControl.Name = intLoopCount & "MemoText"
          NewControl.ControlSource = "=Mid([" & _
             strFieldName & "]," & 250 * intLoopCount + 1 _
             & ",250)"
       Next intLoopCount
    
    End Function
    					
  6. Derleyin ve modül mdlSplitFunction kaydedin.
  7. Aşağıdaki komut penceresi içinde yazın ve ENTER tuşuna basın:
    ?MemoSplitter("rptMemoOutput","Notes",5200)
    					
  8. Raporu Baskı Önizleme'de görüntüler. Araçlar menüsünde Office Bağlantıları ' nın üzerine gelin ve sonra MS Excel ile Çözümle'yi tıklatın.
  9. Verileri bir Microsoft Excel elektronik tablo dosyasındaki görününce tıklatın A1 hücresi; verilerin tümünü seçmek için CTRL + ÜST KRKT + END tuşlarına basın.
  10. Biçim menüsünden, satır ' ı işaretleyin ve Otomatik Sığdır</a1>'ı tıklatın.
  11. A2 hücresini seçin. Ekle menüsünden, Satırlar ' ı tıklatın.
  12. Aşağıdaki formül, A2 hücresinde yazın:
    =VALUE(LEFT(A1,FIND("M",A1,1)-1))
  13. Formülün hücrelere B2 - U2 kopyalayın.
  14. Hücre A2 - U2 seçin.
  15. Düzen menüsünden Kopyala ' yı tıklatın.
  16. Düzen menüsünden Yapıştır Özel ' i tıklatın.
  17. YapıştırÖzel Yapıştır iletişim kutusunda altında değerler ' i tıklatın ve sonra Tamam ' ı tıklatın. Bu ikinci satıra formüllerde <a0>Notlar</a0> alanının kesimleri sıralamak için kullanabileceğiniz değerleri dönüştürür.
  18. Hücre A2 ' ı tıklatın ve tüm seçin, ancak ilk veri satırı için CTRL + ÜST KRKT + END tuşlarına basın.
  19. Veri menüsünden Sırala ' yı tıklatın.
  20. Sırala iletişim kutusunda, <a3>Seçenekler</a3>'i tıklatın.
  21. Sıralama seçenekleri</a0> iletişim kutusunda Yönlendirme ' altında İçin sıralama sol sağ tıklatın. Tamam ' ı tıklatın.
  22. Sırala iletişim kutusunda, Row2Sort By listesinde tıklatın ve segmentleri <a0>Notlar</a0> alanının sıralamak için Tamam ' ı tıklatın.
  23. W3 hücresine aşağıdaki formülü yazın:
    =CONCATENATE(A3,B3,C3,D3,E3,F3,G3,H3,I3,J3,K3,L3,M3,N3,O3,P3,Q3,R3,S3,T3,U3)
  24. W3 ve W4 her kayıt için Notlar alanını yeniden birleştirmek için formülün kopyalayın.

Durum

Microsoft, bu makalenin başında listelenen Microsoft ürünlerinde bir sorun olduğunu onaylamıştır.

Daha fazla bilgi

Davranışı yeniden oluşturma adımları

  1. Microsoft Access'i başlatın ve herhangi bir veritabanını açın.
  2. Aşağıdaki tabloda tblMemoOutput adlı oluşturun:
       Table: tblMemoOutput
       --------------------
       Field Name: ID
       Data Type: Text
       Field Name: Notes
       Data Type: Memo
    					
  3. Tablo tblMemoOutput kaydedin. Birincil anahtar oluşturmak için istemde bulunulduğunda, Hayır ' ı tıklatın.
  4. Tabloyu Veri Sayfası görünümünde açın ve aşağıdaki kayıtlara girin:
       ID   Notes
       --   -----
       a    a
       b    b
       c    c
    					
  5. Yeni bir modülü açın ve aşağıdaki yordamı yazın:
    Function FillMemo(strTableName As String, _
       strFieldName As String)
    
       Dim db As Database
       Dim rs As Recordset
       Dim intLoopCount As Integer
    
       Set db = CurrentDb
       Set rs = db.OpenRecordset(strTableName)
    
       Do Until rs.EOF
          rs.Edit
    
          For intLoopCount = 1 To 26
             rs(strFieldName) = rs(strFieldName) _
                & String(200, Chr(intLoopCount + 64))
          Next intLoopCount
    
          rs.Update
          rs.MoveNext
       Loop
    
       db.Close
    
    End Function
    
    					
  6. Derleyin ve modül mdlDataFunction kaydedin.
  7. Aşağıdaki komut penceresi içinde girin ve ENTER tuşuna basın:
    ?FillMemo("tblMemoOutput","Notes")
    					
  8. Otomatik rapor kullanın: sütun halinde bir rapor oluşturmak için Sihirbazı tblMemoOutput üzerinde temel. Raporu Baskı Önizleme'de görüntüler.
  9. Araçlar menüsünde Office Bağlantıları ' nın üzerine gelin ve sonra MS Excel ile Çözümle'yi tıklatın.
  10. Microsoft Excel'deki bir elektronik tablo dosyasındaki veriyi göründüğünde, aşağıdaki formülü C2 hücresine yazın:
    =LEN(B2)
    Veriler <a0>Notlar</a0> alanındaki en fazla 255 karakterden kesildi unutmayın.

Referanslar

Rapor çıktısını Microsoft Excel'e yükleme hakkında daha fazla bilgi için Yardım menüsünden Microsoft Access Yardımı ' nı tıklatın, sonra da veri yazdırılıyor Office Yardımcısı'na veya Yanıt Sihirbazı'nı yazın ve sonra döndürülen konuları görüntülemek için Ara ' yı tıklatın.

Özellikler

Makale numarası: 208801 - Son Gözden Geçirme: 23 Haziran 2005 Perşembe - Gözden geçirme: 2.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Access 2000 Standard Edition
Anahtar Kelimeler: 
kbmt kbbug kbpending KB208801 KbMttr
Otomatik 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:208801

Geri Bildirim Ver