powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как сделать select * from tbl, кроме одного поля?
25 сообщений из 36, страница 1 из 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
25 сообщений из 36, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / как сделать select * from tbl, кроме одного поля?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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