none
Access Veri Tabanımdaki Bir Tablonun Adını NaSıl Değiştirebilirim? RRS feed

  • Genel Tartışma

  • Visual Studio 2010 ile bir acces veritabanındaki tablo adını değiştirmek için ekteki kodları sırayla deniyorum fakat hiçbiri işe yaramıyor sonuç olumsuz. Yardım lütfen..
     Sub Rename()
            Dim ObjAccess As Object, MDB_Address As String, TaskID As Integer
            MDB_Address = "D:\kayıt.mdb"
            'AdventureWorks
            TaskID = Shell("msaccess.exe " & Chr(34) & MDB_Address & Chr(34), False)
            ObjAccess = GetObject(MDB_Address)
            ObjAccess.DoCmd.Rename("Yeni_Ad", 0, "Eski_Ad")
            ObjAccess.Quit()
            ObjAccess = Nothing
        End Sub
    Diğer Deneme Kodum ;
                Dim con As OleDbConnection = New OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" & Application.StartupPath & "\" & "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='kayıt.mdb'")
                Dim cmd As OleDbCommand = New OleDbCommand("sys.sp_rename 'tablo_eski' , 'Tablo_Yeni'", con)
                con.Open()
                cmd.ExecuteNonQuery()
                con.Close()
                con = Nothing
    21 Eylül 2018 Cuma 07:26

Tüm Yanıtlar

  • Bu işine yarayabilir.Yalnız access den uzakdurmanı tavsiye etmesem olmaz .Bir sürü embedded , file based vs. veritabanı varken neden access ? 
    21 Eylül 2018 Cuma 07:48
  • Bu işine yarayabilir.Yalnız access den uzakdurmanı tavsiye etmesem olmaz .Bir sürü embedded , file based vs. veritabanı varken neden access ? 
    Teşekkür ederim. Fakat işimi çözmedi. Yukarıdaki yazdığım kodlardan biri bu iş için değil mi? Eksik yanlış bir şeymi yazdım acaba ?
    21 Eylül 2018 Cuma 09:06
  • CREATE TABLE ile yeni bir tablo oluşturun.

    INSERT INTO ile eski tablo içeriğini yeni tabloya aktarın.

    DROP ile eski tabloyu silin.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    21 Eylül 2018 Cuma 10:48
  • CREATE TABLE ile yeni bir tablo oluşturun.

    INSERT INTO ile eski tablo içeriğini yeni tabloya aktarın.

    DROP ile eski tabloyu silin.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    Buradaki amacım aslında şunu gerçekleştirmek;

    Bir tablodaki otomatik sayı alanını belli zamanlarda tekrar birden başlatmak. Fakat bu tablodaki kayıtlar silinmeyecek sadece bu tablonun yüzbinlere varan otomatik sayı sütun değerini 1den başlatmak.Tablo adı değişmeyecek çünkü bağlantı kodunda tablo adı değişmesi gerekecek. Bu işlemleri gerçekleştirmek için sırasıyla

    1-Önce Bu tablonun kopyasını oluşturdum. Tablo1_Kopya

    2-Sonra bu Tablo1_Kopya nın içeriğini temizledim ve otomatik sayı alanını 1 den başlata ayarladım.

    3-Asıl tablom olan Tablo1 deki kayıtları Bu Tablo1_Kopya tabloma ekledim,aktardım.

    4-Tablo1 i sildim.

    5-Tablo1_Kopya adlı tablonun adını Tablo1 olarak değiştirirsem olay bitecek. Çünkü bağlantı kodlarımda tablo adını Tablo1 olarak ayarlamıştım. İşte sonuçta Kayıtlarım kaybolmadan otomatik sayı alanını birden başlatmış olacağım. Sıkıntı bu Tablo1_Kopya adlı tablonun adını değiştiremede. Saygılar

    22 Eylül 2018 Cumartesi 10:35
  • CREATE TABLE ile yeni bir tablo oluşturun.

    INSERT INTO ile eski tablo içeriğini yeni tabloya aktarın.

    DROP ile eski tabloyu silin.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    Buradaki amacım aslında şunu gerçekleştirmek;

    Bir tablodaki otomatik sayı alanını belli zamanlarda tekrar birden başlatmak. Fakat bu tablodaki kayıtlar silinmeyecek sadece bu tablonun yüzbinlere varan otomatik sayı sütun değerini 1den başlatmak.Tablo adı değişmeyecek çünkü bağlantı kodunda tablo adı değişmesi gerekecek. Bu işlemleri gerçekleştirmek için sırasıyla

    1-Önce Bu tablonun kopyasını oluşturdum. Tablo1_Kopya

    2-Sonra bu Tablo1_Kopya nın içeriğini temizledim ve otomatik sayı alanını 1 den başlata ayarladım.

    3-Asıl tablom olan Tablo1 deki kayıtları Bu Tablo1_Kopya tabloma ekledim,aktardım.

    4-Tablo1 i sildim.

    5-Tablo1_Kopya adlı tablonun adını Tablo1 olarak değiştirirsem olay bitecek. Çünkü bağlantı kodlarımda tablo adını Tablo1 olarak ayarlamıştım. İşte sonuçta Kayıtlarım kaybolmadan otomatik sayı alanını birden başlatmış olacağım. Sıkıntı bu Tablo1_Kopya adlı tablonun adını değiştiremede. Saygılar

          Bu dediğinizi truncate table  komutu ile yapabilirdiniz ama access de bunu yapabileceğinizi sanmıyorum.

          Belki altertable ile yapabilirsiniz.

            
    ALTER TABLE tabloAdi ALTER COLUMN id COUNTER (1, 1);
    Beni takmıyorsunuz ama o access başınızı çok ağrıtacak yol yakınden dönün :D (dostane bir tavsiye)
    22 Eylül 2018 Cumartesi 11:07
  • CREATE TABLE ile yeni bir tablo oluşturun.

    INSERT INTO ile eski tablo içeriğini yeni tabloya aktarın.

    DROP ile eski tabloyu silin.


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    Buradaki amacım aslında şunu gerçekleştirmek;

    Bir tablodaki otomatik sayı alanını belli zamanlarda tekrar birden başlatmak. Fakat bu tablodaki kayıtlar silinmeyecek sadece bu tablonun yüzbinlere varan otomatik sayı sütun değerini 1den başlatmak.Tablo adı değişmeyecek çünkü bağlantı kodunda tablo adı değişmesi gerekecek. Bu işlemleri gerçekleştirmek için sırasıyla

    1-Önce Bu tablonun kopyasını oluşturdum. Tablo1_Kopya

    2-Sonra bu Tablo1_Kopya nın içeriğini temizledim ve otomatik sayı alanını 1 den başlata ayarladım.

    3-Asıl tablom olan Tablo1 deki kayıtları Bu Tablo1_Kopya tabloma ekledim,aktardım.

    4-Tablo1 i sildim.

    5-Tablo1_Kopya adlı tablonun adını Tablo1 olarak değiştirirsem olay bitecek. Çünkü bağlantı kodlarımda tablo adını Tablo1 olarak ayarlamıştım. İşte sonuçta Kayıtlarım kaybolmadan otomatik sayı alanını birden başlatmış olacağım. Sıkıntı bu Tablo1_Kopya adlı tablonun adını değiştiremede. Saygılar

          Bu dediğinizi truncate table  komutu ile yapabilirdiniz ama access de bunu yapabileceğinizi sanmıyorum.

          Belki altertable ile yapabilirsiniz.

            
    ALTER TABLE tabloAdi ALTER COLUMN id COUNTER (1, 1);
    Beni takmıyorsunuz ama o access başınızı çok ağrıtacak yol yakınden dönün :D (dostane bir tavsiye)
    Beni takmıyorsunuz demeniz üzücü. Yıllardır (1998) access ile çalıştığım için sıfırdan başka bir vt ye başlamak istemediğim için accessle yola devam etmek istiyorum yoksa savunulacak bir tarafı yok. Sadece var olan bir tablo adını SQL sorgularla değiştirilemiyor galiba. Cevaplarınız için teşekkür ederim.
    22 Eylül 2018 Cumartesi 18:43
  • Access kullanmaya devam edeceğinize göre, önerdiğim yöntemi iki kez uygularsanız amacınıza ulaşırsınız.

    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    22 Eylül 2018 Cumartesi 23:41
  • Sonuç; bir Acces veritabanındaki tablonun adını yukarıda verdiğiniz işlemle değiştirilemiyor. İlginiz için Teşekkürler.
    23 Eylül 2018 Pazar 18:40
  • Sonuç; bir Acces veritabanındaki tablonun adını yukarıda verdiğiniz işlemle değiştirilemiyor. İlginiz için Teşekkürler.

          Sorunuza bir çözüm değil ancak sqlite ve litedb araştırırmısınız.Bunca yıldır program geliştirdiğinize göre 1-2 günde işin kurdu olursunuz.Programınıza sadece bir dll ekleyerek kullanabileceğiniz bir veritabanı sqlite.Yani aşağı yukarı access ile elde ettiğiniz tüm avantajları size kaybettirmeden sorunsuz işinizi görür diye tahmin ediyorum.



    23 Eylül 2018 Pazar 19:17
  • Teşekkürler Mehmet Emin Kaymaz, araştırma yapacağım. Bu konu kapanmasın ki netice alınmadığı belli olsun.
    24 Eylül 2018 Pazartesi 17:07