Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Требуется помощь VB / 4 сообщений из 4, страница 1 из 1
24.07.2013, 12:21
    #38341892
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Требуется помощь VB
Уважаемые программисты,
требуется помощь. Я простой пользователь не программист, но есть необходимость получения из базы дополнительных данных.
Есть база из которой данные получаются из excel, c помощью вот такой проги (ниже):

задачка такая - добавить в эти данные баркод из таблицы LG_001_UNITBARCODE колонка BARCODE.
связь у колонок такая LG_001_UNITBARCODE.ITEMREF = LG_001_ITEMS.LOGICALREF или LG_001_02_STLINE.STOCKREF = LG_001_UNITBARCODE.ITEMREF

Может что-то еще надо?

Заранее благодарю за оперативную помощь!!!




Public Sub BRAND()
Dim TCON As ADODB.Connection
Set TCON = New ADODB.Connection
Dim STRCON As String
STRCON = "DRIVER=SQL Server;SERVER=--------;UID=------;PWD=------;APP=Microsoft Office 2003;WSID=SOFTPC;DATABASE=DB;"
TCON.Open STRCON
Dim RS_ As ADODB.Recordset
Set RS_ = New ADODB.Recordset
Dim A As String
With RS_
.ActiveConnection = TCON

A = "SELECT L_CAPIWHOUSE.NR AS SKLNO, L_CAPIWHOUSE.NAME AS SKLAD, LG_001_ITEMS.CODE AS TOVARKOD, LG_001_ITEMS.NAME AS TOVAR, "
A = A + " SUM(CASE LG_001_02_STLINE.IOCODE WHEN 1 THEN LG_001_02_STLINE.AMOUNT WHEN 2 THEN LG_001_02_STLINE.AMOUNT ELSE 0 - LG_001_02_STLINE.AMOUNT END) AS STOK, "
A = A + " (SELECT TOP (1) PRICE FROM LG_001_PRCLIST "
A = A + " WHERE (BEGDATE <= '" + Worksheets("FILTRE").Range("D2").Text + "-" + Worksheets("FILTRE").Range("C2").Text + "-" + Worksheets("FILTRE").Range("B2").Text + "' ) AND (ENDDATE >= '" + Worksheets("FILTRE").Range("D2").Text + "-" + Worksheets("FILTRE").Range("C2").Text + "-" + Worksheets("FILTRE").Range("B2").Text + "') "
A = A + " AND (LG_001_02_STLINE.STOCKREF = CARDREF) AND (PTYPE = 1)) AS SBAHA, "

A = A + " (SELECT TOP (1) PRICE FROM LG_001_PRCLIST "
A = A + " WHERE (BEGDATE <= '" + Worksheets("FILTRE").Range("D2").Text + "-" + Worksheets("FILTRE").Range("C2").Text + "-" + Worksheets("FILTRE").Range("B2").Text + "' ) AND (ENDDATE >= '" + Worksheets("FILTRE").Range("D2").Text + "-" + Worksheets("FILTRE").Range("C2").Text + "-" + Worksheets("FILTRE").Range("B2").Text + "') "
A = A + " AND (LG_001_02_STLINE.STOCKREF = CARDREF) AND (PTYPE = 2)) AS ABAHA, "


A = A + " LG_001_ITEMS.SPECODE FROM LG_001_02_STLINE INNER JOIN L_CAPIWHOUSE ON LG_001_02_STLINE.SOURCEINDEX = L_CAPIWHOUSE.NR INNER JOIN LG_001_ITEMS ON LG_001_02_STLINE.STOCKREF = LG_001_ITEMS.LOGICALREF "
A = A + " WHERE (LG_001_02_STLINE.DATE_ <= '" + Worksheets("FILTRE").Range("D2").Text + "-" + Worksheets("FILTRE").Range("C2").Text + "-" + Worksheets("FILTRE").Range("B2").Text + "') "
A = A + " GROUP BY L_CAPIWHOUSE.NAME, LG_001_ITEMS.CODE, LG_001_ITEMS.NAME, LG_001_02_STLINE.STOCKREF, L_CAPIWHOUSE.NR, LG_001_ITEMS.SPECODE "
A = A + " HAVING (LG_001_ITEMS.CODE <> 'я') ORDER BY TOVARKOD "


.Open A
Worksheets("BRAND").Activate
Worksheets("BRAND").Range("A4:h265000").Select
Selection.ClearContents
Worksheets("BRAND").Range("A4").CopyFromRecordset RS_
.Close
End With
TCON.Close
Set RS_ = Nothing
Set TCON = Nothing
End Sub

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
24.07.2013, 13:09
    #38341990
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Требуется помощь VB
Модератор: Учимся использовать тэги оформления кода - FAQ


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
Public Sub BRAND()
 Dim TCON As ADODB.Connection
 Set TCON = New ADODB.Connection
 Dim STRCON As String
 STRCON = "DRIVER=SQL Server;SERVER=--------;UID=------;PWD=------;APP=Microsoft Office 2003;WSID=SOFTPC;DATABASE=DB;"
 TCON.Open STRCON
 Dim RS_ As ADODB.Recordset
 Set RS_ = New ADODB.Recordset
 Dim A As String
 With RS_
 .ActiveConnection = TCON

A = "SELECT L_CAPIWHOUSE.NR AS SKLNO, L_CAPIWHOUSE.NAME AS SKLAD, LG_001_ITEMS.CODE AS TOVARKOD, LG_001_ITEMS.NAME AS TOVAR, "
A = A + " SUM(CASE LG_001_02_STLINE.IOCODE WHEN 1 THEN LG_001_02_STLINE.AMOUNT WHEN 2 THEN LG_001_02_STLINE.AMOUNT ELSE 0 - LG_001_02_STLINE.AMOUNT END) AS STOK, "
A = A + " (SELECT TOP (1) PRICE FROM LG_001_PRCLIST "
A = A + " WHERE (BEGDATE <= '" + Worksheets("FILTRE").Range("D2").Text + "-" + Worksheets("FILTRE").Range("C2").Text + "-" + Worksheets("FILTRE").Range("B2").Text + "' ) AND (ENDDATE >= '" + Worksheets("FILTRE").Range("D2").Text + "-" + Worksheets("FILTRE").Range("C2").Text + "-" + Worksheets("FILTRE").Range("B2").Text + "') "
A = A + " AND (LG_001_02_STLINE.STOCKREF = CARDREF) AND (PTYPE = 1)) AS SBAHA, "

A = A + " (SELECT TOP (1) PRICE FROM LG_001_PRCLIST "
A = A + " WHERE (BEGDATE <= '" + Worksheets("FILTRE").Range("D2").Text + "-" + Worksheets("FILTRE").Range("C2").Text + "-" + Worksheets("FILTRE").Range("B2").Text + "' ) AND (ENDDATE >= '" + Worksheets("FILTRE").Range("D2").Text + "-" + Worksheets("FILTRE").Range("C2").Text + "-" + Worksheets("FILTRE").Range("B2").Text + "') "
A = A + " AND (LG_001_02_STLINE.STOCKREF = CARDREF) AND (PTYPE = 2)) AS ABAHA, "
A = A + " LG_001_UNITBARCODE.BARCODE, "

A = A + " LG_001_ITEMS.SPECODE FROM LG_001_02_STLINE INNER JOIN L_CAPIWHOUSE ON LG_001_02_STLINE.SOURCEINDEX = L_CAPIWHOUSE.NR INNER JOIN LG_001_ITEMS ON LG_001_02_STLINE.STOCKREF = LG_001_ITEMS.LOGICALREF "
A = A + " LEFT JOIN LG_001_UNITBARCODE ON LG_001_UNITBARCODE.ITEMREF = LG_001_ITEMS.LOGICALREF OR LG_001_02_STLINE.STOCKREF = LG_001_UNITBARCODE.ITEMREF"
A = A + " WHERE (LG_001_02_STLINE.DATE_ <= '" + Worksheets("FILTRE").Range("D2").Text + "-" + Worksheets("FILTRE").Range("C2").Text + "-" + Worksheets("FILTRE").Range("B2").Text + "') "
A = A + " GROUP BY L_CAPIWHOUSE.NAME, LG_001_ITEMS.CODE, LG_001_ITEMS.NAME, LG_001_02_STLINE.STOCKREF, L_CAPIWHOUSE.NR, LG_001_ITEMS.SPECODE "
A = A + " HAVING (LG_001_ITEMS.CODE <> 'я') ORDER BY TOVARKOD "


 .Open A
 Worksheets("BRAND").Activate
 Worksheets("BRAND").Range("A4:h265000").Select
 Selection.ClearContents
 Worksheets("BRAND").Range("A4").CopyFromRecordset RS_
 .Close
 End With
 TCON.Close
 Set RS_ = Nothing
 Set TCON = Nothing
End Sub
...
Рейтинг: 0 / 0
24.07.2013, 13:30
    #38342041
botan131
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Требуется помощь VB
Shocker.Pro,

ОГРОМНОЕ СПАСИБО !!

Наверное уже на шею сажусь , но выяснилось, что может быть несколько баркодов. можно ли вытягивать только последний?

Еще раз спасибо.
...
Рейтинг: 0 / 0
24.07.2013, 13:37
    #38342055
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Требуется помощь VB
Можно.
надо делать подзапрос, где будут отражены только последние.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Требуется помощь VB / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]