MS Access 2003 genel amaçlı bir SQL konsolu içeriyor mu?


4

Sorgu veya görünüm oluştururken Access'te bir SQL konsolu açabileceğinizi biliyorum, ancak aşağıdaki gibi ifadeleri yürütmeme izin verecek bir 'çok amaçlı konsol' var mı:

CREATE TABLE Foo
(
Foo_Id int NOT NULL,
Name varchar(255) NOT NULL,
CONSTRAINT pk_FooID PRIMARY KEY (Foo_Id,Name)
)

Yanıtlar:


7

"Çok amaçlı konsol" ile ne demek istediğinizi bilmiyorum, ama belki de Access'in içinde ihtiyaçlarınızı karşılayacak Acil Pencere var. Ana Erişim penceresinden klavyedeki Ctrl-G tuşlarına basarsanız, bu sizi VBE'deki Acil Pencereye götürür ve orada yazabilirsiniz:

  CurrentDB.Execute "CREATE TABLE Foo (Foo_Id int NOT NULL, Name varchar(255) NOT NULL, CONSTRAINT pk_FooID PRIMARY KEY (Foo_Id,Name))"

Tek satırlı bir arayüzdür, yani SQL biçimlendirmesi yoktur, ancak SQL'i yürütecektir.

CurrentDB'yi yürütme nesneniz olarak kullanmanın sorunu, onu her çağırdığınızda yeni bir veritabanı nesnesi döndürmesidir (tüm koleksiyonlarının güncel olmasını sağlamak için). Bir alternatif olacaktır:

  DBEngine(0)(0).Execute "CREATE TABLE Foo (Foo_Id int NOT NULL, Name varchar(255) NOT NULL, CONSTRAINT pk_FooID PRIMARY KEY (Foo_Id,Name))"

DBEngine (0) (0) daima aynı nesneyi döndürdüğü için, aşağıdaki gibi şeyleri kontrol edebilirsiniz:

  DBEngine(0)(0).RecordsAffected

Bununla ilgili "sorun", veritabanının koleksiyonlarını değiştirirseniz, kullanmadan önce yenilemeyi hatırlamanız gerekir. Örneğin, bir tablo ekler veya silerseniz, TableDefs koleksiyonunu güncellemek için koleksiyona yenilemeniz gerekir:

  DBEngine(0)(0).TableDefs.Refresh

Başka bir alternatif, tüm uygulamalarımda yaptığım gibi önbelleğe alınmış bir veritabanı nesnesi kullanmak olacaktır, ancak koleksiyonların yenileme sorununu engellemez, ancak yazmayı kolaylaştırır (DBEngine (0) (0) 'ı yazmayı buluyorum). oldukça hata eğilimli ve dbLocal işlevimi kullanmak çok daha kolay buluyorum).


Vba'ya ve ani pencereye aşinayım ama müşterinin bir parçası olan basit bir konsol arıyordum. Sorgu için SQL editörü gibi bir şey, ancak SQL deyimlerine bağlı olmayanlar sorguları tanımlar. Bunu yapmama izin verecek basit bir form yazmayı düşünüyorum, ancak önceden mevcutsa bunu yapmak istemedim.
DaveParillo

Diğer insanlar zaten yapmış (duyurularını gördüm), buna ihtiyaç duymadığım için hiç takip etmediğim bir şey. Maalesef Google’ı nasıl kullandığınızdan emin değilsiniz.
David W. Fenton

Beğendiğiniz yardımcı programları bulursanız, neden konuya geri dönmüyorsunuz ve nelerden hoşlandığınızı bize bildirin.
David W. Fenton

currentDb veritabanı nesnesini döndürdüğünde ek yükü ne olur?
Nick

Hangi açıdan ek yük? CurrentDB, koleksiyonları yeniler ve veritabanı nesnesinin bir kopyasını döndürür. DBEngine (0) (0) koleksiyonları yenilemez ve Access'in temel işaretleyicisini bir kopyasından ziyade UI'de açık olan db'ye döndürür. Bu son derece nadir durumlarda (örneğin bir sihirbazı çalıştırdıktan sonra), kullanıcının şu anda kullanıcı arayüzünde açık olan db olarak gördüklerinden başka bir şeye işaretçi döndürebilir . CurrentDB hiçbir zaman bu sorunu yaşamaz. CurrentDB, A97'den bu yana önerilen yöntem olmuştur.
David W. Fenton

3

Sorgu Veritabanı Nesnesindeki Tasarım Görünümü'nü açın. Tablo Göster forumunu kapatın, ardından araç çubuğunun altındaki pencerenin üstündeki boş alana sağ tıklayın. SQL View'u seçin. Bu size sql sorgularını çalıştırabileceğiniz bir yer sağlayacaktır. "Koş!" U kullan. araç çubuğundan

Bu görünüm, sorgu oluşturup kaydetmeniz için tasarlanmıştır, ancak bunu yapmanız gerekmez.


1

Access'in gerçekten genel amaçlı SQL kullanımı için tablo oluşturma gibi bir şey olarak kullanıldığı düşünülüyor. Normal bir SQL sunucusunda olduğu gibi 'saklı yordamları' bile kullanamazsınız. Visual Designer'ı kullanmadan Access'i kullanmaya başlarsanız, kendinizi hayal kırıklığına uğrayacağınızı düşünüyorum.

İyi şanslar!


Bence muhtemelen haklısın! Gerçekten fikirlerle oynamak için kullanabileceğim basit bir 'karalama defteri' istiyorum. Sanırım yaşlanıyorum, ancak Access'te en temel görevleri gerçekleştirmek için katlanmanız gereken tıklama ve fare BS miktarı akıl almaz.
DaveParillo

0

SQL Server'a bağlanmak için bir ADP kullanmak, size ne istediğinizi verebilir. Ancak Access 2003'ün A2003'ten sonra yayımlandıkları gibi SQL Server 2005 veya 2008'de görünümler ve saklı yordamlar oluşturmanıza ne ölçüde izin verdiğini bilmiyorum.


Teşekkürler. Herhangi bir dokümantasyon / bağlantınız var mı? Access 2003'ün saklı yordamları desteklemediğini biliyorum. Varsayım, VBA IDE’de 'saklı prosedürlerin' uygulanacağını varsayıyor.
DaveParillo
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.