powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как сделать select * from tbl, кроме одного поля?
36 сообщений из 36, показаны все 2 страниц
как сделать select * from tbl, кроме одного поля?
    #32206306
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. выбрать изз таблицы все поля кроме одного указаного? возможно такое сделать sql-запросом?
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206312
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Access имхо стандартных возможностей для этого нет. Динамический запрос не подойдет?
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206319
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Сорри за запрещенный вопрос, но зачем это нужно? Может, можно решить задачу другим способом? Взять все поля, а потом скрыть одно из них уже в форме (или для чего оно нужно)?
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206321
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Или такой вариант: написать программу, которая будет честно строить длинный селект, в котором будут перечислены все поля кроме одного.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206325
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2IgorM
например? =)

2Владимир Саныч
не запрещённый =) работаю не с формой.
Или такой вариант:
чесно говоря возникла такая мысль, но надо быстро и сейчас.
а для чего это нужно.. вот: есть таблица со счётчиком и кучей полей (около 20). надо сделать копию определённой записи. когда открываю таблицу, выделяю запись, копирую её в новую всё ок(значение счётчика автоматом обновляется) когда пытаюсь сделать
Код: plaintext
CurrentDb.Execute  "insert into тЗаявления select * from тЗаявления  where (idZ=1 );"

он мне говорит что невозможно добавить запись по причине нарушения уникальность ключа.
вот и хотелось бы сделать что-то вроде
select * кроме id.... =)
в принципе уже сделал, но извратно.
сначала копирую нужную запись в новую временную таблицу, потом во временной таблице удаляю поле счётчика, и уже потом из временной переписываю запись в исходную таблицу.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206328
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
20 полей - это не куча. Куча - это 100 и больше. По-моему, написать ручками селект из 19 полей было бы гораздо быстрее, чем ждать ответа из форума. И никакая временная таблица не нужна.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206330
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Согласен с Санычем. Тем более конструктор запросов для ленивых никто не отменял. 19 галочек проставить не так уж и сложно.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206343
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Даже 19 галочек не нужно. Дабл-кликаем по заголовку прямоугольника таблицы в верхней половине построителя, это выделяет в прямоугольнике все поля (невыделенная остается первая строчка со звездочкой). Тащим мышкой все выделенное в нижнюю половину. Потом одно поле стираем.

А временная таблица - это и медленно, и ненадежно. И это плата за что? За экономию нескольких минут работы программиста.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206357
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=)) раскритиковали.... "лень двигатель прогресса".... =) этот запрос надо делать из вба по кнопочке. т.е. не разово.. а структура таблицы в принципе может поменятся.. или название полей... а потом в коде вылавливать что же и где надо поменять.. это имхо не .... вобщем ленивый я =).. поэтому и сделал.. как я думаю более универсально.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206373
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
С момента задания вопроса прошло 4 часа. За это время можно было написать что-нибудь такое:

s = ""
With CurrentDb.OpenRecordset(...)
For Each f In .Fields
If f.Name <> "ID" Then
If s <> "" Then s = s & ","
s = & f.Name
End If
Next
.Close
End With
s = "select " & s & " from ..."

Блин четыре раза.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206377
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
когда я писал вопрос, я уже решил проблему как описал в 14:05. просто заинтересовал этот вопрос. вот и задал
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206381
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Все равно на пост от 14:05 ушло время, за которое можно было написать что-то типа моего от 17:05. Разрази меня гром, это будет работать надежнее и быстрее, чем временная таблица.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206406
IgorM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имхо для таблицы будет еще быстрее TableDef открыть.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206431
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Согласен с IgorM.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206451
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все равно на пост от 14:05 ушло время, за которое можно было написать что-то типа моего от 17:05.

за то время пока читаешь форум, просматриваешь почту... кофе пьешь... и т.д. можно ого-го сколько сделать =)))) я решил вопрос, но меня заинтересовало как можно ещё. вот и спросил.

Разрази меня гром, это будет работать надежнее и быстрее, чем временная таблица.

надежней и быстрей??.. почему?
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206452
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как-то видел решение аналогичной задачи для SqlServer.
Если народу интересно ,могу поискать и опубликовать
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206454
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Быстрее - потому что одну запись в файл сделать быстрее, чем две записи и одно стирание.

Надежнее - потому что при записях в файл бывают блокировки и конфликты между сессиями, и чем меньше записей в файл, тем их меньше.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206456
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
И кстати:

> в принципе уже сделал, но извратно.

За этой фразой разве не стояло понимание, что этот способ по каким-то причинам нежелателен?
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206459
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2VIG
если можно

2Владимир Саныч
я уже где-то писал.." я только учусь". за этой фразой стояло понимание того, что я НЕ ЗНАЮ как сделать выборку всех полей кроме некоторых. но я сделал это. Было понимание, что наверное можно и лучше сделать. Наверное Ваш способ лучше =). когда в следующий раз возникнет такой вопрос, я уже буду знать КАК это можно сделать несколькими способами. =) эт называется.. "из-за дурной головы ногам покоя нет"... т.е. "рукам" =))))
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206460
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Прошу на "ты", мне так понятнее. :^)
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206464
VIG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
set nocount on

Declare @TableName varchar( 128 ), @ColumnList varchar( 1000 )
Declare @SQL varchar( 1000 )
set @TableName = 'authors'

SELECT @ColumnList = COALESCE(@ColumnList + ', ', '') + column_name 
FROM INFORMATION_SCHEMA.Columns
WHERE Ordinal_position <=  10 
and table_name = @TableName

Set @SQL = 'Select ' + @ColumnList + ' from ' + @TableName

Exec (@SQL)

позаимствовано отсюда
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206465
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Владимир Саныч
ок =)

2VIG
сэнкс... положим. в "копилку" =)) и будем пользоваться
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206466
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Быстрее - потому что одну запись в файл сделать быстрее, чем две записи и одно стирание.
А вот здесь я слегка не соглашусь. Конечно, добавить одну запись быстрее, чем добавить две и одну убить, но только если добавляют одним и тем же способом. А здесь - разными.
Добавление записи SQL-запросом и добавление той же записи через объекты DAO - две большие разницы во времени. По другому и не может быть. Делается то одно и тоже, только еще и через дополнительную прослойку в виде DAO+VBA.
Кто хочет - может провести замеры.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206468
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ сначала надо пробежаться по всем полям (дабы выбрать название). а как вы сами говорили если полей больше 100... то может быстрее будет убить одно поле?
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206470
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
2 Лох:

Простая арифметика. Случай 1. Делаем что-то (например, вставляем запись либо кушаем кактус). Случай 2. Делаем точно то же самое плюс что-то еще неважно каким способом. Что быстрее? Зависит ли это от чего-то?

2 наутилус:

> если полей больше 100

Все равно. Когда приходится рисовать руками, то руки приходится беречь. А если программа, то какая разница, 20 или 2000?
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206478
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну мы говорили не о руках /ых пальцы мозольные =) /, а о том что быстрее будет..
и сравнение с кактусом неправильное твоим способом:
1) пробежаться по всем полям (составить запрос)
2) выполнить запрос(вставить в таблицу)

моё:
1)выбрать запросом запись(си) в другую таблицу
2) удалить ОДНО!!! поле
3)вставить в исходную
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206487
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
> твоим способом:
> 1) пробежаться по всем полям (составить запрос)
> 2) выполнить запрос(вставить в таблицу)
> моё:
> 1)выбрать запросом запись(си) в другую таблицу
> 2) удалить ОДНО!!! поле
> 3)вставить в исходную

Вот мое 2 и твое 3 - это одинаковые действия, их сокращаем. Осталось: у меня операция в памяти с переменными (т.е. очень быстрая), а у тебя две операции с файлом, причем одна из них меняет структуру данных.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206489
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, ты кактус не кушай. Ты експеримент проведи. Добавь кучу записей (по одной в цикле) с помощью sql-запроса и с помощью DAO-рекордсета. И сравни время. Особенно при большом количестве полей.

Когда приходится рисовать руками, то руки приходится беречь
Именно. Поэтому если уж добавлять кодом (через рекордсет), то написать одну функцию, которая будет бежать по полям, проверять тип поля, если не счетчик - копировать, если счетчик - пропускать. Делов то.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206492
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Лох, я запутался. Кто добавляет с помощью sql-запроса и кто с помощью DAO-рекордсета? Разве мы (наутилус и я) добавляем не одинаково? Я в посте от 13:48 сократил две операции как равноценные. Я не прав?
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206494
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саныч, это я запутался. Я все еще обсуждаю твой пост где ты добавляешь запись перебором полей (вчера от 17:05)
Что-то я пропустил момент, когда решили бежать по полям только для формирования sql-запроса. Кстати, эту операцию надо только один раз проделать, и результат запомнить.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206495
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Вчера от 17:05 - это программа, которая собирает длинный селект. Хоть из полей рекордсета, хоть (с учетом поправки IgorM) из полей таблицы. Никакого добавления данных через рекордсет я не предлагал. А мой селект можно запросто переделать в инсерт.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206497
Фотография Лох Позорный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу. Совсем плохо после тяпницы. Нада внимательнее читать.
Был неправ, вел себя недостойно чести советского офицера.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206498
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Интересно, я как израильский ефрейтор запаса как должен себя вести? :^)
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32206512
наутилус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну я тогда вообще... салага украинский =)

всем большой сэнкс =)
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32492673
Фотография Geo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VIG
Большое спасибо за #259911.
...
Рейтинг: 0 / 0
как сделать select * from tbl, кроме одного поля?
    #32492696
(c)\/IG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не за что. Ну у тебя и память
...
Рейтинг: 0 / 0
36 сообщений из 36, показаны все 2 страниц
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как сделать select * from tbl, кроме одного поля?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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