помогите написать макрос для работы с dbf

Программирование на Visual Basic for Applications
D_e_n_n
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 23.01.2008 (Ср) 13:18

помогите написать макрос для работы с dbf

Сообщение D_e_n_n » 31.01.2008 (Чт) 8:17

Помогите с задачей, у меня есть файл xls в нем на листе ИМПОРТ есть кнопка ИМПОРТ нажав на неё должны заргузиться данные файла DBF на этот лист, вообщем помогите кто чем может задание есть во вложении
Вложения
1.rar
(11.6 Кб) Скачиваний: 106

anvg
Обычный пользователь
Обычный пользователь
 
Сообщения: 66
Зарегистрирован: 20.05.2007 (Вс) 18:04

Сообщение anvg » 31.01.2008 (Чт) 10:29

D_e_n_n
Доставь в Office, Microsoft Query
Запиши макрос для работы с ним
В сервис/ импорт внешних данных/создать запрос
Отредактируй получившийся код и используй в своей "кнопке"

D_e_n_n
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 23.01.2008 (Ср) 13:18

Сообщение D_e_n_n » 31.01.2008 (Чт) 11:28

вот этим макросом я добился извлечения нужных мне данный из DBF, результат во вложении
Private Sub CommandButton1_Click()
With ThisWorkbook.Worksheets("ИМПОРТ ИЗ DBF").QueryTables.Add(Connection:="odbc;Driver={Microsoft dBase Driver (*.dbf)};DBQ=C:;", _
Destination:=ThisWorkbook.Worksheets("ИМПОРТ ИЗ DBF").Range("A1"), Sql:="SELECT DATE,BS,DSALD_DV,KSALD_DV FROM путь к каталогу с DBF файлом")
.Refresh
End With
End Sub
Код: Выделить всё

теперь как мне разнести эти данные чтобы получилась такая таблица

Декабрь      
Счет   01.12   02.12
20202   896   896
30102   81571   81571
30110   84   84
30202   2176   2176
30208   27000   27000
30213   22   22
30302   479600   479600
30306   79587   79587
32003   12000   12000
32004   60000   60000
45205   21000   21000
45206   7000   7000
45207   7500   7500
45504   5   5
45505   40   40
45506   122   122
45507   2559   2559
45814   2   2
47105   260   260
51403   29548   29548
51404   4874   4874
51405   9387   9387
51406   4619   4619
52502   61   61
60302   67   67
60304   34   34
60308   15   15
60310   34   34
60312   260   260
60401   1426   1426
61008   6   6
61010   9   9
61403   1561   1561
70201   84   84
70203   0   0
70204   16   16
70206   2116   2116
70208   5   5
70209   1490   1490
70501   493   493
32002   0   0
61002   0   0
61009   0   0
60306   0   0
47802   0   0
45204   0   0
10207   12000   12000
10601   20   20
10701   1350   1350
10702   11042   11042
10703   2650   2650
30301   479600   479600
30305   79587   79587
40602   0   0
40702   170323   170323
40703   5   5
40802   60   60
42301   50   50
45215   100   100
45818   2   2
47422   1   1
52306   24000   24000
52307   22480   22480
52501   61   61
60305   5   5
60311   1   1
60322   27000   27000
60601   713   713
70101   2592   2592
70102   1850   1850
70106   0   0
70107   914   914
70301   1121   1121
30223   0   0
45515   0   0
60307   0   0
60324   0   0
31304   0   0
47425   0   0
47416   0   0
60309   0   0
47804   0   0
60301   0   0
Вложения
DBF to EXCEL.xls
(181.5 Кб) Скачиваний: 105

D_e_n_n
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 23.01.2008 (Ср) 13:18

Сообщение D_e_n_n » 31.01.2008 (Чт) 14:23

может задание не понятно описал?! поможите плиз.

Димитрий
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 194
Зарегистрирован: 26.01.2005 (Ср) 22:47
Откуда: Волгоград

Сообщение Димитрий » 31.01.2008 (Чт) 22:12

Попробуй сводную таблицу.

Linda
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 01.02.2008 (Пт) 17:23

Сообщение Linda » 01.02.2008 (Пт) 17:34

А почему нельзя просто открыть dbf и обработать данные из него?

D_e_n_n
Начинающий
Начинающий
 
Сообщения: 16
Зарегистрирован: 23.01.2008 (Ср) 13:18

Сообщение D_e_n_n » 04.02.2008 (Пн) 5:27

Linda писал(а):А почему нельзя просто открыть dbf и обработать данные из него?

Да открыл я уже макросом ДБФ и нужные данные получил теперь как мне разнести эти данные чтобы получилась такая таблица
Декабрь
Счет 01.12 02.12
20202 896 896
30102 81571 81571
30110 84 84
30202 2176 2176
30208 27000 27000
30213 22 22
30302 479600 479600
30306 79587 79587
32003 12000 12000
32004 60000 60000
45205 21000 21000
45206 7000 7000
45207 7500 7500
45504 5 5
45505 40 40
45506 122 122
45507 2559 2559
45814 2 2
47105 260 260
51403 29548 29548
51404 4874 4874
51405 9387 9387
51406 4619 4619
52502 61 61
60302 67 67
60304 34 34
60308 15 15
60310 34 34
60312 260 260
60401 1426 1426
61008 6 6
61010 9 9
61403 1561 1561
70201 84 84
70203 0 0
70204 16 16
70206 2116 2116
70208 5 5
70209 1490 1490
70501 493 493
32002 0 0
61002 0 0
61009 0 0
60306 0 0
47802 0 0
45204 0 0
10207 12000 12000
10601 20 20
10701 1350 1350
10702 11042 11042
10703 2650 2650
30301 479600 479600
30305 79587 79587
40602 0 0
40702 170323 170323
40703 5 5
40802 60 60
42301 50 50
45215 100 100
45818 2 2
47422 1 1
52306 24000 24000
52307 22480 22480
52501 61 61
60305 5 5
60311 1 1
60322 27000 27000
60601 713 713
70101 2592 2592
70102 1850 1850
70106 0 0
70107 914 914
70301 1121 1121
30223 0 0
45515 0 0
60307 0 0
60324 0 0
31304 0 0
47425 0 0
47416 0 0
60309 0 0
47804 0 0
60301 0 0

KL
Microsoft MVP
 
Сообщения: 483
Зарегистрирован: 30.10.2005 (Вс) 0:31
Откуда: Madrid

Сообщение KL » 04.02.2008 (Пн) 10:44

Код: Выделить всё
Sub Test()
    With ActiveSheet
        .Range(.Cells(1, "A"), .Cells(.Rows.Count, "A").End(xlUp)).TextToColumns _
            Destination:=.Range("A1"), _
            DataType:=xlDelimited, _
            ConsecutiveDelimiter:=True, _
            Space:=True
    End With
End Sub
Привет,
KL


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 63

    TopList