Eklediğim Excel örneğimde pivot oluşturarak ıd ve tutarın toplamını alıyorum. Aynı işlemi Access dosyamda Sorgu1'de yapıyorum fakat Excel'de aldığım sonucu Accessde alamıyorum. Nedenini anlayamadu-ım acaba bir problem var yardımcı olabilirseniz çok sevinirim.
1. QTY alani 29 degil 28 alinmali
2. Excel ile acces dosyalari kayitlari farkl
3. QTY alani 1,250.000 binler hanesini ondalik(,) ayraci ile, ondalik hanesini de binler ayraci(.) ile gosterilmis.
QTY: Right(Replace(Replace([QTY ALAN];",";"");".";",");28)
sayisal islem icin yukaridaki gibi formulize edilmeli.
4. txt dosyasindan veri alirken yanlis islem yapilmis. Text dosyasi olsa access icine daha mantikli veri alinabilir ve bir cok sorun yasanmazdi.
Bir onceki mesajinizda VT ile duzenleme yapilmis idi. Incelerseniz VT kurgusu ile fikir alinabilir.
Veri biraz karışık... Sorgu iki aşamalı: önce "zeki1", sonra "zeki2" sorgusu çalışacak. Çalışma performansı oldukça iyi.
Kod:
Private reg As New RegExp, m As MatchCollection
Const pat1 As String = "\b([\d.,]+)\s{2}(?:PC|KG|M)\b"
Const pat2 As String = "\b[\d.,]+\s{2}(PC|KG|M)\b"
Const pat3 As String = "\b([\dA-Z]+)\s+TR70.*[\d.,]+\s{2}(?:PC|KG|M)\b"
Function midData1(arg) As Double
If IsNull(arg) Then Exit Function
reg.Pattern = pat1
Set m = reg.Execute(arg)
If Not m Is Nothing Then
If m.Count > 0 Then
midData1 = Val(m.Item(0).SubMatches(0))
End If
End If
End Function
Function midData2(arg) As String
If IsNull(arg) Then Exit Function
reg.Pattern = pat2
Set m = reg.Execute(arg)
If Not m Is Nothing Then
If m.Count > 0 Then
midData2 = m.Item(0).SubMatches(0)
End If
End If
End Function
Function midData3(arg) As String
If IsNull(arg) Then Exit Function
reg.Pattern = pat3
Set m = reg.Execute(arg)
If Not m Is Nothing Then
If m.Count > 0 Then
midData3 = m.Item(0).SubMatches(0)
End If
End If
End Function