ERP Nedir? | Türkiye'nin ERP Forum Platformu Ana Sayfa
Forum Anasayfa Forum Anasayfa > ERP Genel > ERP ve Excel
  Aktif Konular Aktif Konular RSS - Excel'den Stok Sabit Degistirme
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

ERP Nedir? Enterprise Resource Planning nasıl çalışır? İş süreçleri ile ilgili tüm soru ve cevapları ERPNe.org'da.

Ülkemizde hızla gelişmekte olan ERP yazılım sektörümüzün, Yerli ve Yabancı ERP işlemlerinin tanıtımı ve kullanıcılarının buluşma noktası olması hedefiyle kurulan sitemize hoş geldiniz.

Ülkemizdeki Ne.org konseptinde bir ilk olarak yayın hayatına başlayan ERPNe.org, Kurumsal Kaynak Planlaması yazılımlarını kullananların bilgi kaynağı/Portal olmak amacı ile kurulmuştur.

Genellikle yurt dışında büyük üreticiler tarafından geliştirilen SQL, Delphi, ASP, CSharp gibi teknolojilerin anlatıldığı sitelerin kullandıkları (WhatisSQL, WhatisASP) (Ülkemizde Netsis Nedir, Mikro Nedir, SAP Nedir yada Logo Nedir gibi kullanıcı sorularına) Ne ve nedir konseptinde yeni bir açılım olmasını da hedefleyen ERPNe.ORG' un, ülkemizin uluslararası ERP sektörü içinde hak ettiği yeri almasında ve ERP ürünlerini kullananların bir araya gelerek Yerli ERP'nin gelişmesine katkı sağlayacakları önemli bir kilometre taşı olacağı düşüncesindeyiz.


Excel'den Stok Sabit Degistirme

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
unalh Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 08 Ekim 2009
Durum: Aktif Değil
Puanlar: 0
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı unalh Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Excel'den Stok Sabit Degistirme
    Gönderim Zamanı: 28 Mayıs 2011 Saat 10:53
Merhabalar,
 
Veri tabaninda TRK fonksiyonu olarak
 
CREATE FUNCTION TRK(@A NVARCHAR(4000))
RETURNS NVARCHAR(4000)  
AS 
BEGIN
  DECLARE @TMP NVARCHAR(4000) 
  SET @TMP = REPLACE(@A COLLATE LATIN1_GENERAL_BIN, CHAR(208), N'G')
  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(220), N'Ü')
  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(222), N'S')
  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(221), N'I')
  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(214), N'Ö')
  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(199), N'Ç')
  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(73), N'I')
  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(240), N'g')
  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(252), N'ü')
  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(254), N's')
  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(105), N'i')
  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(246), N'ö')
  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(231), N'ç')
  SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(253), N'i')
  RETURN @TMP
END
 
Tanimlanmis ben stok isimlerini degistirmek istiyorum bunagöre excel sayfasina nasil bir fonksiyon yazmam gerekiyor.
 
Excel dosyasi ekte.
 
 
 
Yardimlariniz için simdiden tesekkür ederim.


Düzenleyen unalh - 28 Mayıs 2011 Saat 10:57
Yukarı Dön
mbaykan Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 06 Nisan 2007
Konum: izmir
Durum: Aktif Değil
Puanlar: 1181
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı mbaykan Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 29 Mayıs 2011 Saat 13:32
        vtSql = ""
        vtSql = vtSql & "UPDATE TBLSTSABIT SET STOK_ADI = .dbo.tfTRK('"
        vtSql = vtSql & esctrk(Cells(say, 3))
        vtSql = vtSql & "') WHERE STOK_KODU='"
        vtSql = vtSql & Cells(say, 2)
        vtSql = vtSql & "' AND SUBE_KODU=" & Cells(say, 1)

.dbo.tfTRK isimli fonksiyon SQL'de olusturulacak.
TRK fonksiyonunuzla bir isiniz yok.

Excel'deki bazi türkçe karakterler (GÜIgsi) SQL'e düzgün gönderilemedigi için
esctrk ve .dbo.tfTRK fonksiyonlari birlikte kullanilmasi gerekir. bu fonksiyonlar
verimizin Metin(text) oldugu durumlarda kullanilir.
2. olarak sizin makronuzda kullanidiginiz. Replace(<deger>,",",".") fonksiyonu
nümerik alanlarda ondalik olarak girilen virgül(,)ü nokta(.) ya çevirmek için

Kolay gelsin.


Düzenleyen mbaykan - 29 Mayıs 2011 Saat 13:38
Mehmet Baykan
Yukarı Dön
mbaykan Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 06 Nisan 2007
Konum: izmir
Durum: Aktif Değil
Puanlar: 1181
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı mbaykan Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 29 Mayıs 2011 Saat 13:55

CREATE FUNCTION [dbo].[tfTRK](@A NVARCHAR(4000))

RETURNS NVARCHAR(4000)

AS

BEGIN

  DECLARE @TMP NVARCHAR(4000)

  SET @TMP = REPLACE(@A , '~#G', N'Ð')

  SET @TMP = REPLACE(@TMP ,'~#S', N'Þ')

  SET @TMP = REPLACE(@TMP ,'~#I', N'Ý')

  SET @TMP = REPLACE(@TMP ,'~#i', N'ý')

  SET @TMP = REPLACE(@TMP ,'~#g', N'ð')

  SET @TMP = REPLACE(@TMP ,'~#s', N'þ')

    RETURN @TMP

END

Mehmet Baykan
Yukarı Dön
unalh Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 08 Ekim 2009
Durum: Aktif Değil
Puanlar: 0
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı unalh Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 30 Mayıs 2011 Saat 08:31

Mehmet bey merhabalar,

Bu fonksiyonun text degerlerde kullanildigini biliyorum bunnula ilgili bir sikinti yoktur fakat söylemek istedigim benim kullandigim veri tabaninda birinci mesajda verdigim foknsiyon kullanilmis türkçeye çevirim için bu fonksiyon için'de excelde esctrk fonksiyonunu kullansak ayni islemi görürmü yoksa veri tabanina [dbo].[tfTRK] adi ile yeniden bir fonksiyonmu olusturmak gerekiyor.
 
Eger yeni fonksiyon olusturmak gerekirse benim veritabanimda Sirket_1 Sirket_2 gibi kullandigim 3 tane sirket var bunlarin herbirine tanimlamam gerekiyor bu islemi nasil yapabilirim. 
 
Yukarı Dön
mbaykan Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 06 Nisan 2007
Konum: izmir
Durum: Aktif Değil
Puanlar: 1181
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı mbaykan Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 30 Mayıs 2011 Saat 12:30
TRK fonksiyonuyla sizin tablonuzun hiç bir baglantisi yoktur

excelde esctrk fonksiyonu GSI harflerini sirasiyla ~#G , ~#S ve ~#I harflerine dönüstürür
ve SQL'e giden dönüstürülmüs text'imize de tfTRK fonksiyonu 3'er harfle gelmis olan türkçelerine
karsilik gelen Ð,Þ ve Ý harflerini yerlestirir (~# ler silinir). Sonuçta Text'imizin orjinal uzunlugu 10 karakter
ise sql'de bu fonksiyon yardimi ile tekrar 10 karaktere dönüsür.

evet kullandiginiz tüm sirketlerde tfTRK fonksiyonunu olusturmaniz(CREATE) gerekiyor
sorunlu türkçe karakter kullaniminiz yoksa söz konusu fonksiyonlara gerek yoktur.

SQL Management Studio'da ilgili sirket veritabanini seçtikten sonra
New Query ile açtiginiz pencereye tfTRK fonksiyonunun kodunu yapistirip
F5'e basarak olusturacaksiniz.
daha önce VIEW veya benzeri bir çalismaniz olmussa SQL Management Studio'yu kullanmis olmalisiniz.
Eger siz herhangi bir nedenle yapamiyorsaniz. yapacak birinden yardim almalisiniz
uzun bir açiklama yaptim. umarim sikmamisimdir.
Kolay gelsin


Düzenleyen mbaykan - 30 Mayıs 2011 Saat 13:00
Mehmet Baykan
Yukarı Dön
unalh Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 08 Ekim 2009
Durum: Aktif Değil
Puanlar: 0
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı unalh Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 30 Mayıs 2011 Saat 17:54
Mehmet bey sikmadiniz aksine güzel bilgiler paylastiniz bu paylasim için tesekkür ederim.
 
Veri tabanlarimda türkçe fonksiyonlar olusturdum üç ayri firmada bunlari test ettim sikintisiz çalisiyorlar.
 
Veri alirken gayet güzel sonuçlar veriyor.
 
Yanliz söyle bir durum var stok adini degistirmek istedigimde
 
 .Execute -------->   satirinda hata veriyor
 
Örnegin stok adini deneme diye yazarsam hata aliyorum fakat 112566 gibi sayilar yazarsam degistiriyor.
 
Sorun nereden kaynaklaniyor olabilir.
 
 
Sub insertSQL()
Dim cn As Object

'On Error Resume Next
Set cn = CreateObject("ADODB.Connection")
Dim vtSql
Dim say%
   Set cnn = CreateObject("ADODB.Connection")
   cnn.Open "driver={SQL Server};server=" & Range("b1").Value & ";uid=" & Range("b2").Value & ";pwd=" & Range("b3").Value & ";database=" & Range("b4").Value & ""
    Set cmdCommand = CreateObject("ADODB.Command")
    Set cmdCommand.ActiveConnection = cnn
    sonst = [b65536].End(3).Row
    'Satir Kadar Döngü------------------
    For say = 6 To sonst
        vtSql = ""
        vtSql = vtSql & "UPDATE TBLSTSABIT SET STOK_ADI=.dbo.TURKCE('"
        vtSql = vtSql & esctrk(Cells(say, 3))
        vtSql = vtSql & " WHERE STOK_KODU='"
        vtSql = vtSql & Cells(say, 2)
        vtSql = vtSql & "' AND SUBE_KODU=" & Cells(say, 1)
            With cmdCommand
            .CommandText = vtSql
            .CommandType = adCmdText
            .Execute
            End With
      Next say
    'Satir Kadar Döngü Sonu------------------
    cnn.Close
    Set cmdCommand = Nothing
    Set cnn = Nothing
End Sub

Public Function esctrk(gstr)
    Dim geri As String
    geri = gstr
    geri = Replace(geri, "G", "~#G")
    geri = Replace(geri, "S", "~#S")
    geri = Replace(geri, "I", "~#I")
    geri = Replace(geri, "g", "~#g")
    geri = Replace(geri, "s", "~#s")
    geri = Replace(geri, "i", "~#i")
    esctrk = geri
End Function

Yukarı Dön
mbaykan Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 06 Nisan 2007
Konum: izmir
Durum: Aktif Değil
Puanlar: 1181
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı mbaykan Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 30 Mayıs 2011 Saat 22:29

Cells(say,3) önünde ve arkasinda tek tirnak konuyor mu?
sizin kodunuzda görülmüyor
benim foruma yazdigimi kopyalayip yapistirin
olacaktir
Mehmet Baykan
Yukarı Dön
unalh Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 08 Ekim 2009
Durum: Aktif Değil
Puanlar: 0
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı unalh Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 31 Mayıs 2011 Saat 09:32
Mehmet bey ilginize çok tesekkür ederim.
 
Sorun çözüldü.
 
Hayirli isler.
Yukarı Dön
 Yanıt Yaz Yanıt Yaz
  Konu Paylaş   

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 11.10
Copyright ©2001-2017 Web Wiz Ltd.

Bu Sayfa 0,907 Saniyede Yüklendi.