ACC2000: Recordset'i yeniden kadar yeni SQL kayıtlar silinmiş görünüyor

Makale çevirileri Makale çevirileri
Makale numarası: 208799 - 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 makale yalnızca Microsoft Access veritabanı (.mdb) için geçerlidir.

Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Tablonun benzersiz dizini alanında varsayılan bir değer varsa ve bu alana bir değer atayın, Visual Basic for Applications, kullanarak bir SQL tablosuna bir kayıt eklediğinizde, SQL tablosu açılıncaya kadar yeni bir kayıt silinmiş olarak görünür. Yeni bir kayıt bir değer edinmeye, aşağıdaki hata iletisini alırsınız:
Çalışma zamanı hatası '3167'

Kayıt silindi.

Çözüm

SQL tablosu Visual Basic kodu kullanarak açtığınızda, bu davranışı gidermek için <a0></a0>, aşağıdaki örnekte olduğu gibi dbSeeChanges seçeneğini içerir:
Set rs = db.OpenRecordset("TestTable", dbOpenDynaset, dbSeeChanges)
				
herhangi yeni benzersiz dizin</a0> alanında varsayılan bir değer içeren kayıtların geçerli bir kayıt kümesindeki kullanılabilir eklediğinizi dbSeeChanges seçeneğini sağlar.

Daha fazla bilgi

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.

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

Not: Bu makaledeki örnek kod Microsoft Data Access Objects kullanır. Bu kodun düzgün çalışması için Microsoft DAO 3.6 Nesne Kitaplığı'na başvurmalısınız. Bunu yapmak için <a0></a0>, Visual Basic Düzenleyicisi'nde Araçlar menüsünden Başvurular ' ı tıklatın ve sonra Microsoft DAO 3.6 Nesne Kitaplığı</a0> onay kutusunun seçili olduğundan emin olun.

  1. Bir modül oluşturun ve zaten orada değilse, tanımlamalar bölümüne aşağıdaki satırı yazın:
    Seçenek Belirtik
  2. Aşağıdaki yordam yazın:
    Function TestSQLData()
    
       Dim db As DAO.Database, rs As DAO.Recordset
       Dim idx, td
       Dim cmd As String
    
       ' Delete TestTable if it exists on the SQL server.
       
       'Insert your database name, user ID, password (if any), and dsn
       'to point to an ODBC data source.
       Set db = OpenDatabase("<MyDatabase>", False, False, _
       "ODBC, Database = <MyDatabase>, UID = <userid>, PWD = <password>, dsn = <MyDSN>")
       cmd = "if exists (select * from sysobjects where" _
          & " id = object_id('dbo.TestTable'))"
       cmd = cmd & " drop table TestTable"
       db.Execute cmd, dbSQLPassThrough
    
       ' Create TestTable with one field on SQL server.
       Set td = db.CreateTableDef("TestTable")
       td.Fields.Append td.CreateField("Int", dbInteger)
       td.Fields.Append td.CreateField("String", dbText, 50)
       db.TableDefs.Append td
    
       Set idx = td.CreateIndex("MyIdx")
       idx.Unique = True
       idx.Fields.Append idx.CreateField("Int")
       td.Indexes.Append idx
    
       cmd = "create Default TestDef3 as 100"
       db.Execute cmd, dbSQLPassThrough
    
       cmd = "sp_bindefault TestDef3, 'TestTable.Int'"
       db.Execute cmd, dbSQLPassThrough
    
       ' Open table, add a record, and then obtain values.
       Set rs = db.OpenRecordset("TestTable")
       rs.AddNew
       rs!String = "Trial"
       rs.Update
    
       Debug.Print "RecordCount = " & rs.RecordCount
       rs.MoveFirst
       Debug.Print "String is " & rs("String")
       Debug.Print "Int is " & rs("Int")
       rs.Close
    
    End Function
    					
  3. Bu işlevi sınamak için, Hemen Penceresi'ne aşağıdaki satırı yazın ve ENTER tuşuna basın:
    ? TestSQLData()
    Çalışma zamanı hatası 3167 oluştuğunu unutmayın.

Özellikler

Makale numarası: 208799 - Last Review: 23 Haziran 2005 Perşembe - Gözden geçirme: 3.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Access 2000 Standard Edition
Anahtar Kelimeler: 
kbmt kberrmsg kbprb kbusage KB208799 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:208799

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