Excel de MAKRO , SQL de CURSOR tanımlamak ?

Katılım
29 Haziran 2005
Mesajlar
158
Excel Vers. ve Dili
MS Office Professional Plus 2013 64 Bit -Eng
MSSQL 2012 R2 64 Bit
Merhaba arkadaşlar ; EXCEL de nasıl makro yazıyorsak , SQL de de bazı işlemleri otomatik yapmak için CURSOR tanımlanır...Fakat ben CURSOR tanımlama konusunda oryantasyonumu tamamlamış değilim...

Düzeltme : Bu konuya olan reytingin az olmasından sorunun tarafımdan sizlere iyi aktarılamadığını düşündüğümden ayrıntılı açıklamar yapmak gereği duydum.

Amaç : Bir uygulama programımız var.Bu uygulama programının arayüz form uyarlama aracı mevcut..OPEN Database...Ne demek bu ?
Logo Tiger da, hehangi bir GRID Browser ekranında yazılım default exe sinde olmayan alanları+sütunları siz kendiniz ekleyebiliyorsunuz...Örnek : Stok kartları browserında Malzeme kartının Kodu,Açıklaması,Brimi,Miktarı gibi bilgiler listelenirken...siz bu browsera Malzemelerin Koli içi miktarlarınıda getirmek isteyebilirsiniz...Program içerisindeki Customise Form aracı ile Stok Kart tablesinde var olan alanlar içerisinde koli içi mikar field ı varsa eklemesini yaptığınızda browserınızdaki sütunlar şu hale geliyor..Kodu,Açıklaması,Brimi,Miktarı,Koli İçi Ambalanj Miktarı...FAKAT Customise formileyeni bir sütuneklmek istediğinizde sadece ilgili BROWSERA ilgili TEK bir TABLE de field ekleyebiliyorsunuz...İSTE SORUN bu noktada ortaya çıkıyor...Stok kartının BARCODE bilgisi , Stok kartı TABLE sinde yer almıyor...tamamen ayrı bir table de yer alıyor...böyle olunca da BARKODE bilgisini browser a getiremiyorsunuz...Getirebilmek için BARKODE bilgisini Stok Tablesinde sizin belirleyeceğiniz UNIQ olamayan bir Field a yazdırmanız gerekecek....iste bu noktada 2.300 Adet stok kartı için tektek elle Barkod listesi çıkarıp kart üzerindeki kartın tablosundaki bir alana elle tek tek yazmak zorunda kalacaksınız EĞER , SQL Script , SQL DTS ve Excel fonksiyonlarını bilmiyorsanız...

Neyseki DTS ve Excel fonksiyonlarını bildiğim için sorunumu uzun bir yoldan da olsa halledeceğim...
Sizlerden istediğim ise ; SQL Script CURSOR Update yada EXCEL VBA ile soruna alternatif çözümler üretebilmenizdir...


Sizlerden aşağıda belirttiğim "otomatik tetiklemeli UPDATE" olarak nitelendirilebilecek sorunu CURSOR oluşturarak çözebilmenizdir.

iki tablom var...

1 Stok Tablosu ( ITEMS table )
2 Stok Özellik Tablosu (ITMUNITA table)

ITEMS tablesinde; uniq key field ı LOGICALREF dir.
ITEMS daki Logicalref ITMUNITA da ITEMREF e eşittir.

Örnek : 1905 Stok koduna sahip DEFTER stoğunun veritabanındaki uniqe keyi 1 dir.(programda açılan ilk stok kartı)..Bu durumda ITMUNITA da ilgili stok kartının özelliklerinin kayıt edildiği satır ITEMREFi 1 olan satırdır.

Bu şekilde 2300 satır var...

yapmak istediğim ITMUNITA tablesindeki BARCODE alanındaki CHAR tipindeki verilerin ITEMS tablesindeki PRODUCERCODE alanına SET edilmesidir...

Update öncesi LÜTFEN JPEG dosyasına bakınız..

Table ITEMSTable ITMUNITALogicalrefCodeNameProducerNoLogicalrefITEMREFBarcode10STK-0010DefterNULL11005000111STK-0011KalemNULL21105000212STK-0012SilgiNULL31205000313STK-0013RimelNULL41305000414STK-0014BayrakNULL514050005

Update sonrası olması gereken..

Table ITEMSTable ITMUNITALogicalrefCodeNameProducerNoLogicalrefITEMREFBarcode10STK-0010Defter05000111005000111STK-0011Kalem05000221105000212STK-0012Silgi05000331205000313STK-0013Rimel05000441305000414STK-0014Bayrak050005514050005

satır açıklamalı yardımlarınızı bekliyorum...
iyi çalışmalar...
 
Son düzenleme:
Katılım
29 Haziran 2005
Mesajlar
158
Excel Vers. ve Dili
MS Office Professional Plus 2013 64 Bit -Eng
MSSQL 2012 R2 64 Bit
Excel den cozumler

Tekrar , Merhabalar arkadaşlar ;

iletmiş olduğum problemi SQL Script ile çözemedim , manuel bir yöntem olan SQL DTS ve Excel Fonksiyon yardımları ile daha uzun ve her defasında aynı işlemlerin yapılması gereken bir yöntem ile 2300 stok kartındaki Barkod bilgisini , Üretici kodu (LG_XXX_ITEMS daki PRODUCERCODE Field ına ) alanına getirebildim.

Yöntem...

1-SQL Enterprise dan , ilgili veritabanı ve ilgili firma Stok kartları (LG_XXX_ITEMS) Tablesini EXPORT ile Ofice97-2000 formatında dışarı attım.Stock.XLS

2-SQL Enterprise dan , ilgili veritabanı ve ilgili firma Stok kartları ÖZELLİKLERİ (LG_XXX_ITMUNITA) Tablesini EXPORT ile Ofice97-2000 formatında dışarı attım.ITMUNITA.XLS

3-ITMUNITA.XLS dosyasındaki ITEMREF ve BARCODE sütunlarını , STOCK.XLS dosyasına A ve B sütunlarına kopyaladım..

4-DÜŞEYARA (VLOOKUP) fonksiyonu ile PRODUCERCODE sütununda , Logicalref field ındaki bilgiyi ITEMREF sütununda aratıp,BARCODE değişkenini çektim...

5-SQL de LG_XXX_ITEMS Tablesini DELETE ettim..

6-SQL Enterprise dan , ilgili veritabanı ve ilgili firma Stok kartları (LG_XXX_ITEMS) Tablesine IMPORT ile Ofice97-2000 formatında STOCK.XLS yi içeriçektim.

işlem tamam...

çok yakın bir zamanda bu çözüme alternatif olan , SQL Script kodunuda burada görebileceksiniz...tabii ki benden önce birileri davranmaz ise :)

hepinize kolay gelsin iyi çalışmalar...
 
Son düzenleme:
Katılım
29 Haziran 2005
Mesajlar
158
Excel Vers. ve Dili
MS Office Professional Plus 2013 64 Bit -Eng
MSSQL 2012 R2 64 Bit
ACCES ile Cozumler tukendimi sandiniz :)

Tekrar Merhaba arkadaşlar ;

Arkadaşım Alico nun da katkıları ile aşağıdaki ACCES Sorgu ile sorunu kökünden hallettik...

UPDATE dbo_LG_096_ITEMS
INNER JOIN dbo_LG_096_ITMUNITA ON dbo_LG_096_ITEMS.LOGICALREF = dbo_LG_096_ITMUNITA.ITEMREF
SET dbo_LG_096_ITEMS.PRODUCERCODE=dbo_LG_096_ITMUNITA.BARCODE

daha ne diyeyim ben , bilginin sınırlarını zorlamak gerekli birşey...

çok yakında SQL sorgusu da burada olacak...kolay gelsin
 
Katılım
12 Mayıs 2006
Mesajlar
34
Excel Vers. ve Dili
Office Xp TR
gayet iyi çalışma bravo.
 
Üst