Arşive Gönderme

Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
Sayın mehmetdemiral,

Datavalid bir alt yordam bu da aynı sayfanın en üstünde bulunuyor. Oradaki kodları da taşımanız gerekiyor.

İyi çalışmalar
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Sayın Modalı. Aslında veri aldığımız txt dosyasının yerine bizim oluşturduğumuz -daha doğrusu kodlarımızın oluşturduğu- txt dosyası geçecek. Ve aslında en aciliyeti olan konu buydu. Çünkü projem yarın kullanılmaya başlanmalı. Ben verileri alıp düzenlenmesini sağlayacak kadar ilerledim. Ve aslını ararsanız üzerlerinde çalıştıkları verileri düzenledikleri kadarıyla bırakıp acil olarak düzenlemeleri gereken -veya dosyası ellerine ulaşmadığı için durmak zorunda kaldıkları durumda- mevcut mdb'yi kaydetmelerini amaçlıyordum. Böylece başka bir dosya (txt veya mdb) çağırıp onunla çalışabilecekti. Ama eğer txt olarak arşivleyip daha sonra devam etmek isterlerse de iş olabilir. Bu sefer tek sıkıntı -ki çok önemli değil- asıl txt dosyasında olmayan mahalleadi, caddeadi gibi 7-8 kalem veri kaydedilmeyecek. Ama bunların koyulma sebebi zaten seçildiklerinde dlookup komutu ile tabloya mahalleid, caddeid gibi verileri yazdırmaktı. Bu veriler yazılmış olacak yani.

Ama tıpkı sizin önerdiğiniz -karaayhan'a önerdiğiniz- ve benim split ile $ ayıraçlı hale getirdiğim yapının aynen tersine işletilmesi mümkün mü? Böylece üzerinde çalışılmış, düzenlenmiş veriler txt olarak kaydedilebilecek. Daha önce anlattığım 13.000 kayıtla sınırlı olan ama bizim tek mdb'de topladığımız şekil de tersine çevrilecek. Bunu yaparken mdb dosyamıza yazdığımız dosya adları da ayırmada bize yol gösterecek ve oluşan txt dosyaları birer birer adlarını bu şekilde alacak.
Anlatırken güzel ama yaparken nasıl olur? :)))) Ben o yüzden önceliği txt'e dönüştürmeye verelim diyorum. Mdb olarak arşivlemeden vazgeçelim. Onu adamlar verileri düzenlemeye başladıktan sonra da ilave edebilirim. Zaten eğer txt olarak kaydetme işini yarına yetiştiremezsem bu şekilde vereceğim ve txt olarak dönüştürme işini verileri dosyaadi sütununa göre gruplayan bir sorgu ile istifleyip Access'in kendi dışa veri gönderme sihirbazıyla tek tek ben yapmalıyım. Bu da 80-100 adet txt dosyasını tek tek benim dönüştürmem demek ki, yazdığım programın bir anlamı olmayacak.. Adamlardan fazla ben yorulacağım:)))
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Sayın modalı.. Sizin yazdığınızı görmeden ve okumadan bir sürü şey yazdım.. Kusura bakmayın..:))
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Bahsettiğiniz komutları görmemişim. Onları da aldım ve bazı yerlerini kendimce düzenledim. Ama ne kadar doğru oldu bilmiyorum. Aşama aşama ilerledim ve en son
Set recExt = dbExt.OpenRecordset("tblalınanVeriler")

kısmında hata verdi. Verilerin tamamını vereyim de bir inceleyin. Nereyi atlamışım?

ÖNCE GÖZAT BUTONU:

Private Sub gözat_Click()
On Error GoTo cmdAddSmall_Err
Dim strFilter As String
Dim lngflags As Long
Dim varFileName As Variant

strFilter = "All Files (*.*)" & vbNullChar & "*.*" _
& vbNullChar & "All Files (*.*)" & vbNullChar & "*.*"

lngflags = tscFNPathMustExist Or tscFNFileMustExist _
Or tscFNHideReadOnly

varFileName = tsGetFileFromUser( _
fOpenFile:=True, _
strFilter:=strFilter, _
rlngflags:=lngflags, _
strDialogTitle:="Please choose a file...")

If IsNull(varFileName) Then
Else
Me!Metin25 = varFileName
End If

cmdAddSmall_End:
On Error GoTo 0
Exit Sub

cmdAddSmall_Err:
Beep
MsgBox Err.Description, , "Error: " & Err.Number _
& " in file"
Resume cmdAddSmall_End

End Sub


GETİR BUTONU

Private Sub getir_Click()
Call DataValid
End Sub



IMPORT TABLES KODLARI

Sub ImportTables()
Dim db As DAO.Database
Dim tdf As DAO.TableDef
Dim dbName As String

dbName = "C:\mehmet.mdb" 'Benim access çalışmam

Set db = OpenDatabase(dbName)
For Each tdf In db.TableDefs
If Not (tdf.name Like "MSys*") Then 'ignore system tables
DoCmd.TransferDatabase acImport, "Microsoft Access", _
dbName, acTable, tdf.name, tdf.name, False
End If
Next

db.Close
Set db = Nothing
End Sub


DATA VALID KODLARI
Sub DataValid()
Dim dbExt As Database
Dim recExt As Recordset
Dim dbName As String
Dim verisay As Integer
Dim y As Integer

dbName = Me!Metin25

Set dbExt = OpenDatabase(dbName)
Set recExt = dbExt.OpenRecordset("tblalınanVeriler") 'Benim tablo ismim. Arşivde de program da aynı isim

recExt.MoveLast
verisay = recExt.RecordCount
recExt.MoveFirst

For y = 0 To verisay - 1


DoCmd.GoToRecord , , acNewRec
Ad = recExt.Fields(0)
Soyad = recExt.Fields(1)

DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70

recExt.MoveNext
Next y

Set recExt = Nothing
Set dbExt = Nothing

End Sub
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Pardon

Ad = recExt.Fields(0)
Soyad = recExt.Fields(1)


Bölümünü atlamışım. Şimdi sanırım halledeceğim.. Çok sağolun.
 
Katılım
30 Ocak 2006
Mesajlar
937
Excel Vers. ve Dili
Access 2003
Sayın Modalı,
Ben olayı çözdüm. Olay referanslardan kaynaklanıyor. Daha doğrusu referansların sıralamasından. O yüzden sanırım aktarma modülünü ayrı bir program olarak vermek gerekecek. Çünkü eğer Microsoft DAO 3.6 Obj. Libr. eğer Ole Otomasyon ve Activex data obj. 2.7 referanslarından önce olmazsa Arşive gönderme çalışmıyor. Bu şekilde sıralanınca da Txt'ten mdb'ye alma çalışmıyor. Sanırım sizin dediğini gibi bunun Ado'su lazım. Olmazsa ayrı bir form olarak yapacağız.
 
Üst