Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в SQL коде. / 17 сообщений из 17, страница 1 из 1
01.08.2012, 10:40
    #37900004
Dima1974_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
Доброе утро,

Есть код.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
'dim sh As Worksheet

cstrBase As String = "Путь\2012.06"
strFileName = "062012B1.DBF"
With cn
    .Provider = "Microsoft.Jet.OLEDB.4.0"
    .ConnectionString = "Data Source=" & cstrBase & ";Extended Properties=dBase IV"
    .Open
 
    Set rs = .Execute("SELECT * FROM " & strFileName)
End With


Есть Таблица Tempdata

Запускаю всё из Access

Проблемы:
1. Есть ли другой способ получить данные из strFileName, т.к. этот код на одной машине работает, а на другой зависает намертво.
2. Как можно изменить запрос ("SELECT * FROM " & strFileName) чтобы он сразу закрыжал нужные данные в таблицу Tempdata

Спасибо
...
Рейтинг: 0 / 0
01.08.2012, 11:56
    #37900167
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
если правильно помню, то в Акцессе есть такое понятие как "внешние таблицы"
подключите их к своей базе и работайте как с локальными таблицами
...
Рейтинг: 0 / 0
01.08.2012, 12:13
    #37900203
Dima1974_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
Мне нужно это сделать программно.
...
Рейтинг: 0 / 0
01.08.2012, 13:34
    #37900320
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
что сделать програмно?
если подключить таблицы, то поищите
Программное подключение таблиц из внешней базы данных MS Access
это, правда, для 97, но в в более поздних версиях, функционал должен остаться
...
Рейтинг: 0 / 0
01.08.2012, 14:46
    #37900488
Dima1974_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
Спасибо. Попытаюсь разобраться.
Програмно, я подразумевал код на VBA, который позволит мне получить доступ к данным в DBF файле.
Как указано в теме, у меня есть код, который работает на другой машине, а на моей нет.
И я думал, может есть другой способ забора данных из внешних источников.
...
Рейтинг: 0 / 0
01.08.2012, 15:04
    #37900530
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
Dima1974_1Проблемы:
1. Есть ли другой способ получить данные из strFileName, т.к. этот код на одной машине работает, а на другой зависает намертво.
2. Как можно изменить запрос ("SELECT * FROM " & strFileName) чтобы он сразу закрыжал нужные данные в таблицу Tempdata

Спасибо
открываеш АДО коннекшен к целевой, акцессовской БД
и в нём, выполняеш такой запрос
Код: sql
1.
2.
insert into Tempdata (f1, f2, f3)
select f1, f2, f3 from [062012B1] in 'Путь\2012.06'[dBase IV;HDR=YES] 
...
Рейтинг: 0 / 0
01.08.2012, 15:51
    #37900621
Dima1974_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
Код: vbnet
1.
2.
3.
4.
Set tdTarget = dbCurrent.CreateTableDef(TableName)
tdTarget.Connect = ";DATABASE=" & ExternalDataBaseName & IIf(Password = "", "", ";pwd=" & Password) 'Ошибка
tdTarget.SourceTableName = ExternalTableName
dbCurrent.TableDefs.Append tdTarget



файл dbf не открывает.
Пишет ошибку "не понятный формат"

Что не так делаю?
...
Рейтинг: 0 / 0
01.08.2012, 15:51
    #37900622
Dima1974_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
qwerty112,

Пишет Не вижу Tempdata
...
Рейтинг: 0 / 0
01.08.2012, 15:53
    #37900629
Dima1974_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
qwerty112,

То есть мне нужен ещё один коннекшн к самому accessу?
...
Рейтинг: 0 / 0
01.08.2012, 16:11
    #37900662
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
Dima1974_1qwerty112,

То есть мне нужен ещё один коннекшн к самому accessу?
а это всё происходит в Акцессе, в той БД где таб.Tempdata

аа, тогда не нужен,
тогда просто
Код: vbnet
1.
2.
3.
currentproject.connection.execute _
"insert into Tempdata (f1, f2, f3) " & _
"select f1, f2, f3 from [062012B1] in 'Путь\2012.06'[dBase IV;HDR=YES] "
...
Рейтинг: 0 / 0
01.08.2012, 16:27
    #37900693
Dima1974_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
qwerty112,

Огромное СПАСИБО. С работало на УРА.

СПАСИБО
...
Рейтинг: 0 / 0
01.08.2012, 16:57
    #37900751
Dima1974_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
qwerty112,

А может сможете мне ещё помочь.

Есть база. В ней очень много счетов. Мне нужно выбрать 100-200 счетов.

Выдается ошибка: Слишком сложный запрос. Хотя он выглять, как

select nr_c from tempdata where ((nr_c="1" or nr_c="2" or ... (100-200 счетов) or nr_c="201"));

Спасибо
...
Рейтинг: 0 / 0
01.08.2012, 17:36
    #37900803
qwerty112
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
Dima1974_1qwerty112,

А может сможете мне ещё помочь.

Есть база. В ней очень много счетов. Мне нужно выбрать 100-200 счетов.

Выдается ошибка: Слишком сложный запрос. Хотя он выглять, как

Код: sql
1.
select nr_c from tempdata where ((nr_c="1" or nr_c="2" or ... (100-200 счетов) or nr_c="201"));



Спасибо
это вы, что вот так 200 условий в where вписывали ?

эти nr_c - строковое поле ?
если "без разрывов" в нумерации, то так можно
Код: sql
1.
select nr_c from tempdata where Val(nr_c) between 1 and 201


если "с разрывами" - то несколько диапазонов (between) объединённых or-ами

в самом пиковом случае -
Код: sql
1.
select nr_c from tempdata where nr_c in ("1", "2", "20", "200")



или с доп.таблицей, в которую занесены эти счета
Код: sql
1.
select nr_c from tempdata where nr_c in (select nr_c from [доп.таблицей, в которую занесены эти счета])
...
Рейтинг: 0 / 0
02.08.2012, 09:36
    #37901319
Dima1974_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
qwerty112,

СПАСИБО.

Очень полезная информация.

А подскажите как мне правильно записать запос:

На основе Вашего примера.

Ваш пример:
select nr_c from tempdata where nr_c in (select nr_c from [доп.таблицей, в которую занесены эти счета])

А мне так можно?

select nr_c from tempdata where nr_c in (select nr_c from [nr_cAccount] where codI="7")

nr_c - строковая переменная.

И ещё раз ОГРОМНОЕ ВАМ СПАСИБО.
P.S. Я не программист. Я просто пытаюсь автоматизировать хоть как то рабочие процессы, ибо данных много, машина слабая - Excel не тянет.
...
Рейтинг: 0 / 0
02.08.2012, 17:39
    #37902394
Dima1974_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
qwerty112,

Это опять я.

Вот код:

currentdb.querydefs("Q1").sql = "INSERT INTO T2 (N,IT) SELECT N, IT FROM T1 WHERE N IN (SELECT N FROM [T3] WHERE P1=7);
currentdb.querydefs("Q1").Execute

Q1 - запрос в который постоянно изменяю
T1 - таблица содержит поля N,IT
T2 - таблица куда зщаносятся выбранные поля из T1 (выбираются по N)
T3 - таблица где содержать списки N которые нужно выбирать для каждой P1
P1 - числовое поле

После выполнения запроса, он просто выбирает все данные из T1, а не те где совпадает N из таблицы T3

Помогите плз. Что не так. Спасибо
...
Рейтинг: 0 / 0
02.08.2012, 18:46
    #37902527
Dima1974_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
Проблему решил.

Спасибо за помощь.
...
Рейтинг: 0 / 0
30.08.2012, 19:38
    #37937793
Dima1974_1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите найти ошибку в SQL коде.
qwerty112,

А вот в этой проблеме не сможете помочь?

http://www.sql.ru/forum/actualthread.aspx?tid=966173

Заранее ОГРОМНОЕ СПАСИБО.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в SQL коде. / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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