İçinde Access veritabanında çalıştırmak istediğim birkaç SQL deyimi olan bir metin dosyası var. Access ' Sorgu Düzenleyicisi ile mümkün olabileceğini düşündüm. Yani, bu düzenleyiciye gidin ve ifadeleri yapıştırın: Ben Bu olduğunun bir göstergesi olarak alınabilir bir
Missing semicolon (;) at end of SQL statement.
Access 'Query Editor'da birden çok SQL ifadesini nasıl çalıştırırım?
almak
onları çalıştırmak çalışılıyorinsert into aFewYears (yr) values ('2000')
insert into aFewYears (yr) values ('2001')
insert into aFewYears (yr) values ('2002')
insert into aFewYears (yr) values ('2003')
(kırmızı ünlem işareti vurarak) editör çoklu ifadelerini çalıştırmaya izin verir. Yani, ifadeleri değiştirebilir ve sonunda böyle bir noktalı virgül ekleyin:
insert into aFewYears (yr) values ('2000');
insert into aFewYears (yr) values ('2001');
insert into aFewYears (yr) values ('2002');
insert into aFewYears (yr) values ('2003');
Sonra olsun bir olasılıkla birden çok ifade işlemeye mümkün değildir olduğunun bir göstergesi olarak alınabilir
Characters found after end of SQL statement.
. Tamam
, bu yüzden soru: sorgu editörü birden ifadeleri çalıştırmak mümkündür, ya da her nasılsa// tarihinde karşı Access'te bir dosyada sql ifadeleri toplu yürütmek mümkündür.
Teşekkür/Rene
düzenlemek insert ifadeleri örnek olarak kullanılmıştır ve hepsi aynı masaya gidip böyle bir şey tabii ki her nasılsa çözülebilir çünkü onlar mükemmel daha az olduğunu fark Birliği veya bir şeyi olan bir deyimi kullanarak. Çözmeyi denediğim gerçek durumumda, dosya yalnızca deyim eklemekle kalmaz, aynı zamanda tablo ifadeleri oluşturur ve altta yatan farklı tablolara sahip ifadeler ekler. Bu yüzden, her türlü SQL deyimiyle bir dosya çalıştırabilen sevgili SQL * Plus için Oracle gibi bir şey olduğunu umuyordum.
Neden değişken türden bir değişken kullanır? Sadece bir UBound() kullanarak bir sayaç kullanarak atlayabilirsiniz? Bunu ilk gördüğümde, Access olmayan bir mültecinin koduna benzediğini düşündüm ve sonra senden Albert'i gör. Bunu asla böyle yapmam. Dizeleri bölüyorum, bu yüzden dizilim benim dizimde, yazı dizisi olmalı. –
@David W. Fenton - "Neden varyant türünde bir değişken kullanıyorsunuz?" - Bazen VBA konuya çok fazla seçenek vermiyor ve bu onlardan biri. Split ve For Her kullanmanın yararı, kodun IMO daha okunabilir olmasıdır ... ama bu bir tat sorusu. ByVal/ByRef anahtar kelimelerini atlamamanız, dolaylı ByRef ile sonuçlanmamaktan ziyade açık bir şekilde ByVal'ın daha uygun olacağını fark edersiniz. Ama sadece bir tat meselesi, biggie yok. – onedaywhen
Evet, her şey için ubound() komutunu kullanmadığım anlamına gelir. Ayrıca/sonraki döngü için bildiren sayacı kaydeder. Biraz daha az yazarak buluyorum ve vSql (I) gibi bir dizi referans kullanmak zorunda değilim. Ve, "Next I" in yerine de kullanabilirim: "Next" (böylece kullanılan değişkeni değiştirebilirim fakat kullanılan var olan adı yeniden isimlendirirseniz, koddaki daha az diğer yerleri değiştirebilirim). 0 "her" için "var" var, ancak dizi (As Dave'in işaret ettiği gibi) dize dizisi olarak bildirilmiş olmalıdır. Dim vSql() As String –