powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Требуется помощь VB
4 сообщений из 4, страница 1 из 1
Требуется помощь VB
    #38341892
botan131
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уважаемые программисты,
требуется помощь. Я простой пользователь не программист, но есть необходимость получения из базы дополнительных данных.
Есть база из которой данные получаются из 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
Требуется помощь VB
    #38341990
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Учимся использовать тэги оформления кода - 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
Требуется помощь VB
    #38342041
botan131
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.Pro,

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

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

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


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