MDE MDB Dönüşüm Servisi için - VBA kod örneği kurtarma
#1
Merhaba Arkadaşlar Yabancı sitelerde MDE-MDB Dosyaları Dönüşüm Ararken Şötle Bir Kod Yapısı Buldum Acaba Konuyla Alakalımı Yardım Ederseniz Sevinirim...

Visual Basic
  1. Alt FixAllDataAccessPages ()
  2.  
  3. 'Değişmeze: FixAllDataAccessPages
  4. 'Amaç: hepsi için geçerli veritabanında veri erişim sayfaları üzerinden gider:
  5. Onların bağlantı dizeleri doğru ve emin olun *
  6. '* Eğer sayfaya veritabanı konteyner gelen bağlantı güncelleştirme gerekli.
  7.  
  8. Dim CurrentPath geçerli veritabanına String 'Yol gibi
  9. Dim FullPath String 'Yol ve geçerli Veritabanı Adı gibi
  10. Dim DPName uzatma dahil Sayfa Dizesi 'adı olarak
  11. Dim dbname mevcut veritabanı dizgi 'adı olarak
  12. Dim Pgs String 'Array () olarak sayfaların listesini tutun
  13. Dim FullNames String 'Array () gibi sayfanın tam adı tutun
  14. Dim İsimler Dizesi 'Array () olarak Sayfa Adı tutun
  15. Dim NUMPAGES Tamsayı olarak
  16. Dim i tamsayı 'Basit Sayaç olarak
  17. Dim WasFixed 'Boole gibi
  18. Dim NumErrors Tamsayı 'Sayı hata olarak karşılaştı
  19. Dim NumDBCUnfixed çözülmüş DBC link sayısına Tamsayı 'olarak ayarlayın
  20.  
  21. = "Tespit Sayfa Bağlantılar strStatusMsg" İnşaat
  22.  
  23. İnşaat strFixErrPrefix = "There were"
  24. İnşaat strFixErrSuffix = "hata veri erişim sayfası bağlantıları tespit." & _
  25. "Bazı sayfaları çalışmaz Mayıs beklendiği gibi."
  26. İnşaat strFixErrTitle = "Can't Fix Sayfalar!"
  27.  
  28. İnşaat strMDEMsgPrefix = "Bu dosya, bir MDE ve içerir"
  29. Veri erişim sayfalarını da sabit edilememiştir için İnşaat strMDEMsgSuffix = "link." & _
  30. "Sayfa kaynakları kontrol edildi."
  31. İnşaat strMDEMsgTitle = "Can't Fix DBC Linkler!"
  32.  
  33. 'Eğer veritabanı okumak, sadece, o zaman düzeltmek durumunda kontrol edin
  34. 'Bir şey, şimdi çıkın.
  35. Eğer (GetAttr (Application.CurrentProject.FullName) Ve vbReadOnly) Sonra Çıkış Alt
  36.  
  37. FullPath = CurrentDb.Name
  38.  
  39. Dbname = Mid (FullPath, InStrRev (FullPath, "\",,) vbBinaryCompare + 1)
  40.  
  41. CurrentPath = Left $ (FullPath, InStrRev (FullPath, "\",,) vbBinaryCompare - 1)
  42.  
  43. 'Veri Erişim Sayfaları sayısı alın
  44. NUMPAGES = CurrentProject.AllDataAccessPages.Count
  45.  
  46. 'Ayarlayın dizi sayfa adlarını tutar
  47. ReDim Preserve FullNames (NUMPAGES - 1)
  48. ReDim Preserve İsimler (NUMPAGES - 1)
  49.  
  50. 'Ve yolları ile (Adı) tüm Sayfa İsimler ve FullNames alın
  51. I = 0 için NUMPAGES için - 1
  52. FullNames (i) = CurrentProject.AllDataAccessPages (i). FullName
  53. İsimler (i) = CurrentProject.AllDataAccessPages (i). Adı
  54. Ardından
  55.  
  56. Application.Echo Yanlış, strStatusMsg
  57.  
  58. NumErrors = 0
  59. NumDBCUnfixed = 0
  60.  
  61. I = 0 için NUMPAGES için - 1
  62. Dizinin her sayfasından 'Adım
  63. 'Yolu kaldırma (eğer uzantısı koruyarak varsa)
  64.  
  65. DPName = Right (FullNames (i), Len (FullNames (i)) - InStrRev (FullNames (i) _
  66. "\",,)) VbBinaryCompare
  67. WasFixed = FixPageConnection (CurrentPath, FullNames (i) DPName, dbname, _
  68. İsimler (i) NumDBCUnfixed)
  69. Eğer () Sonra WasFixed
  70. NumErrors = NumErrors + 1
  71. End If
  72. Sonraki
  73.  
  74. NumErrors <> 0 Then If
  75. MsgBox strFixErrPrefix & NumErrors & strFixErrSuffix, _
  76. , strFixErrTitle vbCritical
  77. End If
  78.  
  79. 'Eğer mümkün olmayan bazı DBC bağlantıları düzeltmek için, bizim kötü bağlantılar bir MDE ettiğiniz anlamına gelir
  80. Eğer NumDBCUnfixed <> 0 Then
  81. MsgBox strMDEMsgPrefix & NumDBCUnfixed & strMDEMsgSuffix, _
  82. , strMDEMsgTitle vbCritical
  83. End If
  84.  
  85. Application.Echo Doğru
  86.  
  87. End Sub




Kaynak Kod: Bir Northwind 2000 MDE veritabanı () from
Visual Basic
  1. Kamu Alt FixAllDataAccessPages ()
  2.  
  3. Dim i tamsayı olarak
  4. Dim DPName Dizesi olarak
  5. Dim FullPath Dizesi olarak
  6. Dim dbname Dizesi olarak
  7. Dim CurrentPath Dizesi olarak
  8. Dim FullNames Dize () gibi
  9. Dim NUMPAGES Tamsayı olarak
  10. Dim NumDBCUnfixed Tamsayı olarak
  11. Dim Pgs Dize () gibi
  12. Dim WasFixed Boole gibi
  13. Dim İsimler Dize () gibi
  14. Dim NumErrors Tamsayı olarak
  15.  
  16. Dize = "vardı olarak İnşaat strFixErrPrefix"
  17. Veri erişim sayfalarını da sabit edilememiştir için Dize = "link olarak İnşaat strMDEMsgSuffix." & _
  18. "Sayfa kaynakları kontrol edildi."
  19. Dize = "Can't Fix Sayfalar olarak İnşaat strFixErrTitle!"
  20. Dize = "Tespit Sayfa Bağlantılar olarak İnşaat strStatusMsg"
  21. Dize = "Bu dosya, bir MDE ve içerir olarak İnşaat strMDEMsgPrefix"
  22. Dize = "hata veri erişim sayfası bağlantıları tespit olarak İnşaat strFixErrSuffix." & _
  23. "Bazı sayfaları çalışmaz Mayıs beklendiği gibi."
  24. Dize = "Can't Fix DBC Linkler olarak İnşaat strMDEMsgTitle!"
  25.  
  26. Eğer GetAttr (CurrentProject.FullName) Ve 1 Sonra
  27.  
  28. Çıkış Alt
  29.  
  30. End If
  31.  
  32. FullPath = CurrentDb.Name
  33. Dbname = Mid (FullPath, InStrRev (FullPath, "\") + 1)
  34. CurrentPath = Left $ (FullPath, InStrRev (FullPath, "\") - 1)
  35. NUMPAGES = CurrentProject.AllDataAccessPages.Count
  36. Redim Koruma FullNames (NUMPAGES - 1)
  37. Redim Koruma İsimler (NUMPAGES - 1)
  38.  
  39. I = 0 için NUMPAGES için - 1
  40.  
  41. FullNames (i) = CurrentProject.AllDataAccessPages (i). FullName
  42. İsimler (i) = CurrentProject.AllDataAccessPages (i). Adı
  43.  
  44. Ardından
  45.  
  46. Echo 0, strStatusMsg
  47. NumErrors = 0
  48. NumDBCUnfixed = 0
  49.  
  50. I = 0 için NUMPAGES için - 1
  51.  
  52. DPName = Right (FullNames (i), Len (FullNames (i)) - InStrRev (FullNames (i), "\"))
  53. WasFixed = FixPageConnection (CurrentPath, FullNames (i) DPName, dbname, _
  54. İsimler (i) NumDBCUnfixed)
  55.  
  56. Eğer WasFixed
  57.  
  58. NumErrors = NumErrors + 1
  59.  
  60. End If
  61.  
  62. Ardından
  63.  
  64. NumErrors <> 0 Then If
  65.  
  66. MsgBox strFixErrPrefix & NumErrors & strFixErrSuffix, vbCritical, strFixErrTitle
  67.  
  68. End If
  69.  
  70. Eğer NumDBCUnfixed <> 0 Then
  71.  
  72. MsgBox strMDEMsgPrefix & NumDBCUnfixed & strMDEMsgSuffix, vbCritical strMDEMsgTitle
  73.  
  74. End If
  75.  
  76. Echo -1, vbNullString
  77.  
  78. End Sub





  Alıntı
Bu mesajı beğenenler:
#2
bende merak ettim doğrusu
bir uzman görüşü alsak
mutlaka anlayan birileri vardır



  Alıntı
Bu mesajı beğenenler:
#3
Yapmak için sormuyorum yanlış anlaşılma olmasın ama,kodu okurken translate.google kurbanı olduğunu gördüm. for next falan kaybolmuş.
Uğraşacak biri çıkarsa bile en azından kodun düzgün okunabilmesi için orjinal hali gerekli olacaktır.



  Alıntı
Bu mesajı beğenenler:
#4
Visual Basic
  1. Sub FixAllDataAccessPages()
  2.  
  3. ' Subroutine: FixAllDataAccessPages
  4. ' Purpose: Goes through all of the data access pages in the current database to:
  5. ' * Make sure their connection strings are correct and,
  6. ' * If necessary, update the link from the database container to the page.
  7.  
  8. Dim CurrentPath As String ' Veri Tabanının Yolunu Gösterin
  9. Dim FullPath As String ' Şimdiki veritabanının Yolu ve Adı
  10. Dim DPName As String ' Genişleme içeren sayfanın adı
  11. Dim DBName As String ' Şimdiki veri tabanının adı
  12. Dim Pgs() As String ' Sayfa listesini tutan dizi
  13. Dim FullNames() As String ' Sayfanın tam adını tutan dizi
  14. Dim Names() As String ' Sayfanın adını tutan dizi
  15. Dim NumPages As Integer
  16. Dim i As Integer ' Basit sayaç
  17. Dim WasFixed As Boolean
  18. Dim NumErrors As Integer ' Karşılaşılan hata sayısı
  19. Dim NumDBCUnfixed As Integer ' Tamir edilmemiş DBC linklerinin sayısını ayarı
  20.  
  21. Const strStatusMsg = "Sayfa bağlantıları tamir ediliyor"
  22.  
  23. Const strFixErrPrefix = "Vardı "
  24. Const strFixErrSuffix = " Veri erişim sayfa bağlantılarının tamir hataları. " & _
  25. "Bazı sayfalar beklendiği gibi çalışmayabilir."
  26. Const strFixErrTitle = "Sayfalar tamir edilemiyor!"
  27.  
  28. Const strMDEMsgPrefix = "Bu dosya bir MDE ve içerir .."
  29. Const strMDEMsgSuffix = "Tamir edilemeyen data erişim sayfalarına olan linkler. " & _
  30. " Sayfa kaynakları kontrol edildi."
  31. Const strMDEMsgTitle = "DBC linkleri tamir edilemiyor!"
  32.  
  33. ' Check if the database is read only, then we won't be able to fix
  34. ' anything, so exit now.
  35. If (GetAttr(Application.CurrentProject.FullName) And vbReadOnly) Then Exit Sub
  36.  
  37. FullPath = CurrentDb.Name
  38.  
  39. DBName = Mid(FullPath, InStrRev(FullPath, "\", , vbBinaryCompare) + 1)
  40.  
  41. CurrentPath = Left$(FullPath, InStrRev(FullPath, "\", , vbBinaryCompare) - 1)
  42.  
  43. ' Get the total number of Data Access Pages
  44. NumPages = CurrentProject.AllDataAccessPages.Count
  45.  
  46. ' Set the array to hold the page names
  47. ReDim Preserve FullNames(NumPages - 1)
  48. ReDim Preserve Names(NumPages - 1)
  49.  
  50. ' Get all the Page Names and FullNames (Name with and without paths)
  51. For i = 0 To NumPages - 1
  52. FullNames(i) = CurrentProject.AllDataAccessPages(i).FullName
  53. Names(i) = CurrentProject.AllDataAccessPages(i).Name
  54. Next i
  55.  
  56. Application.Echo False, strStatusMsg
  57.  
  58. NumErrors = 0
  59. NumDBCUnfixed = 0
  60.  
  61. For i = 0 To NumPages - 1
  62. ' Step through each page in the Array
  63. ' Removing the path (preserving the extension if any)
  64.  
  65. DPName = Right(FullNames(i), Len(FullNames(i)) - InStrRev(FullNames(i), _
  66. "\", , vbBinaryCompare))
  67. WasFixed = FixPageConnection(CurrentPath, FullNames(i), DPName, DBName, _
  68. Names(i), NumDBCUnfixed)
  69. If Not (WasFixed) Then
  70. NumErrors = NumErrors + 1
  71. End If
  72. Next
  73.  
  74. If NumErrors <> 0 Then
  75. MsgBox strFixErrPrefix & NumErrors & strFixErrSuffix, _
  76. vbCritical, strFixErrTitle
  77. End If
  78.  
  79. ' If we weren't able to fix some DBC links, it means we're an MDE with bad links
  80. If NumDBCUnfixed <> 0 Then
  81. MsgBox strMDEMsgPrefix & NumDBCUnfixed & strMDEMsgSuffix, _
  82. vbCritical, strMDEMsgTitle
  83. End If
  84.  
  85. Application.Echo True
  86.  
  87. End Sub
  88.  
  89. ________________________________________
  90. 'Reverse Engineered Source Code: (from a Northwind 2000 MDE database)
  91. Public Sub FixAllDataAccessPages()
  92.  
  93. Dim i As Integer
  94. Dim DPName As String
  95. Dim FullPath As String
  96. Dim DBName As String
  97. Dim CurrentPath As String
  98. Dim FullNames() As String
  99. Dim NumPages As Integer
  100. Dim NumDBCUnfixed As Integer
  101. Dim Pgs() As String
  102. Dim WasFixed As Boolean
  103. Dim Names() As String
  104. Dim NumErrors As Integer
  105.  
  106. Const strFixErrPrefix As String = "Vardı .."
  107. Const strMDEMsgSuffix As String = " Veri erişim sayfa bağlantılarının tamir hataları. " & _
  108. "Sayfa kaynakları kontrol edildi."
  109. Const strFixErrTitle As String = "Sayfalar tamir edilemiyor!"
  110. Const strStatusMsg As String = "Sayfa bağlantıları tamir ediliyor"
  111. Const strMDEMsgPrefix As String = "Bu dosya bir MDE ve içerir .."
  112. Const strFixErrSuffix As String = " Veri erişim sayfa bağlantılarının tamir hataları. " & _
  113. "Bazı sayfalar beklendiği gibi çalışmayabilir."
  114. Const strMDEMsgTitle As String = "DBC linkleri tamir edilemiyor!"
  115.  
  116. If GetAttr(CurrentProject.FullName) And 1 Then
  117.  
  118. Exit Sub
  119.  
  120. End If
  121.  
  122. FullPath = CurrentDb.Name
  123. DBName = Mid(FullPath, InStrRev(FullPath, "\") + 1)
  124. CurrentPath = Left$(FullPath, InStrRev(FullPath, "\") - 1)
  125. NumPages = CurrentProject.AllDataAccessPages.Count
  126. Redim Preserve FullNames(NumPages - 1)
  127. Redim Preserve Names(NumPages - 1)
  128.  
  129. For i = 0 To NumPages - 1
  130.  
  131. FullNames(i) = CurrentProject.AllDataAccessPages(i).FullName
  132. Names(i) = CurrentProject.AllDataAccessPages(i).Name
  133.  
  134. Next i
  135.  
  136. Echo 0, strStatusMsg
  137. NumErrors = 0
  138. NumDBCUnfixed = 0
  139.  
  140. For i = 0 To NumPages - 1
  141.  
  142. DPName = Right(FullNames(i), Len(FullNames(i)) - InStrRev(FullNames(i), "\"))
  143. WasFixed = FixPageConnection(CurrentPath, FullNames(i), DPName, DBName, _
  144. Names(i), NumDBCUnfixed)
  145.  
  146. If Not WasFixed Then
  147.  
  148. NumErrors = NumErrors + 1
  149.  
  150. End If
  151.  
  152. Next i
  153.  
  154. If NumErrors <> 0 Then
  155.  
  156. MsgBox strFixErrPrefix & NumErrors & strFixErrSuffix, vbCritical, strFixErrTitle
  157.  
  158. End If
  159.  
  160. If NumDBCUnfixed <> 0 Then
  161.  
  162. MsgBox strMDEMsgPrefix & NumDBCUnfixed & strMDEMsgSuffix, vbCritical, strMDEMsgTitle
  163.  
  164. End If
  165.  
  166. Echo -1, vbNullString
  167.  
  168. End Sub





  Alıntı
Bu mesajı beğenenler:
#5
iyi sabahlar
bu kodlar nereye ve nasıl yazılacak
nasıl kullanılacak



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  [FORM] Tüm Kelimelerde Sesli Okuma örneği bozuk arşiv hatası orderyazbim 3 2.055 07-06-2023, 09:22
Son Mesaj: ates2014
  [VBA] Bozulan Access Veri Tabanı Kurtarma (yardım !!!) mobildestek 2 488 06-03-2023, 22:59
Son Mesaj: alperalper
  Kütüphane Veritabanı örneği Lazım Acceste Sorgu Form Tablo gokothemusician 1 704 10-05-2021, 13:37
Son Mesaj: onur_can
  [FORM] Kargo Firması Için Sql Server (ödev Için) SimpleAnarchist 0 1.043 16-08-2020, 18:05
Son Mesaj: SimpleAnarchist
  [FORM] Kurtarma ByVlKing 1 493 25-04-2019, 19:49
Son Mesaj: onur_can
  Taruz Hocamızın Gelişmiş Yönetici Araçları (Yönetim Paneli) Örneği M_Kemal_Askeri 0 1.459 12-07-2018, 21:10
Son Mesaj: M_Kemal_Askeri
  [TABLO] VERİTABANI GİYİM MAĞAZASI VERİ TABANI ÖRNEĞİ tatlikiz111 1 5.850 21-12-2016, 07:03
Son Mesaj: dsezgin
  [TABLO] adisyon örneği yardım alperefe 3 4.289 28-06-2016, 18:33
Son Mesaj: romanci

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar):