powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите найти ошибку в SQL коде.
17 сообщений из 17, страница 1 из 1
Помогите найти ошибку в SQL коде.
    #37900004
Dima1974_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе утро,

Есть код.

Код: 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
Помогите найти ошибку в SQL коде.
    #37900167
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если правильно помню, то в Акцессе есть такое понятие как "внешние таблицы"
подключите их к своей базе и работайте как с локальными таблицами
...
Рейтинг: 0 / 0
Помогите найти ошибку в SQL коде.
    #37900203
Dima1974_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно это сделать программно.
...
Рейтинг: 0 / 0
Помогите найти ошибку в SQL коде.
    #37900320
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что сделать програмно?
если подключить таблицы, то поищите
Программное подключение таблиц из внешней базы данных MS Access
это, правда, для 97, но в в более поздних версиях, функционал должен остаться
...
Рейтинг: 0 / 0
Помогите найти ошибку в SQL коде.
    #37900488
Dima1974_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Попытаюсь разобраться.
Програмно, я подразумевал код на VBA, который позволит мне получить доступ к данным в DBF файле.
Как указано в теме, у меня есть код, который работает на другой машине, а на моей нет.
И я думал, может есть другой способ забора данных из внешних источников.
...
Рейтинг: 0 / 0
Помогите найти ошибку в SQL коде.
    #37900530
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Помогите найти ошибку в SQL коде.
    #37900621
Dima1974_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
Помогите найти ошибку в SQL коде.
    #37900622
Dima1974_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112,

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

То есть мне нужен ещё один коннекшн к самому accessу?
...
Рейтинг: 0 / 0
Помогите найти ошибку в SQL коде.
    #37900662
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Помогите найти ошибку в SQL коде.
    #37900693
Dima1974_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
qwerty112,

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

СПАСИБО
...
Рейтинг: 0 / 0
Помогите найти ошибку в SQL коде.
    #37900751
Dima1974_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Помогите найти ошибку в SQL коде.
    #37900803
qwerty112
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Помогите найти ошибку в SQL коде.
    #37901319
Dima1974_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Помогите найти ошибку в SQL коде.
    #37902394
Dima1974_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Помогите найти ошибку в SQL коде.
    #37902527
Dima1974_1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблему решил.

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

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

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

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


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