Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Условие отбора при создании таблицы
 
 автор: Алekcaндp   (20.10.2006 в 17:43)   личное сообщение
 
 

Прошу очередной подсказки в следующем вопросе:
Имеется таблица Table1 с текстовым полем Pole1.
В разных записях поля Pole1 имеется либо числа, например "1995гг", либо текст, например "белый".
Подскажите, пожалуйста, как я могу создать новую таблицу Table2, в которой числовая информация скопировалась бы в Cyfra2, а текстовая в Text2.
Условием отбора числовой информации может служить первый символ в Pole1 - если это цифра, то поле числовое и копируем его в Cyfra2, если не цифра, то в Text2.
Я пробовал применить SELECT , функции IIF и Left, но у меня ничего не вышло...
Помогите, пожалуйста.
С уважением, Александр.

  Ответить  
 
 автор: Силыч   (20.10.2006 в 18:17)   личное сообщение
 
 

пробуйте еще
вы на правильном пути
у вас обязательно получится

  Ответить  
 
 автор: Алekcaндp   (20.10.2006 в 18:23)   личное сообщение
 
 

К сожалению... ничего не выходит...
Делал я это все в редакторе запросов, а не в модуле VB... может поэтому???

  Ответить  
 
 автор: Силыч   (20.10.2006 в 18:41)   личное сообщение
 
 

навряд. а вы бы код представили на рассмотрение чтоли. хоть.

  Ответить  
 
 автор: Explorer   (20.10.2006 в 18:58)   личное сообщение
 
 

1 числа целые?

2 "1995гг" - не число а текст, так же как и "белый"

3 да, запросом на добавление

4 судя по тому, как вы привели в пример "1995гг" - вы чего-то недоговариваете

с учетом изложенного - быть может переформулируете задачу :))) - может вам нужно выдернуть числовые значения из полей вида 1995гг?



ыудусе... тьфу мля...


select

iif(IsNumeric(Pole1),Pole1,0) as intValues, iif(IsNumeric(Pole1),"",Pole1) as strValues

into YourNewTable from Table1;

  Ответить  
 
 автор: Алekcaндp   (20.10.2006 в 19:09)   личное сообщение
 
 

Это прайс-лист, изначально в котором было только 2 поля: Наименование и цена. Причем, в наименовании содержалась информация о дате и описание, которые были включены в скобки. На этом форуме мне помогли извлеч из скобок в отдельные поля, но появилась новая задача, разделить некоторые поля. Сейчас я пытаюсь сделать таблицу, в которой должно быть 3 поля: Наименование, год выпуска и описание..

На 1 и 2: Поле текстовое, в котором год выпуска и описание.
Вот я и хочу год выпуска и описание разместить в разных полях.

  Ответить  
 
 автор: Explorer   (20.10.2006 в 19:25)   личное сообщение
 
 

ну а задачу как сформулировали?

читайте как у вас изложено: В разных записях поля Pole1 имеется либо числа, например "1995гг", либо текст, например "белый".

  Ответить  
 
 автор: Алekcaндp   (20.10.2006 в 19:42)   личное сообщение
 
 

Прошу прощения за свою некомпетентность!
Я ведь программист-любитель, который пытается сделать что-то стоящее для себя...

  Ответить  
 
 автор: Explorer   (20.10.2006 в 19:59)   личное сообщение
 
 

к сожалению не осталось времени разобраться и ответить

если задача ставится так - выдернуть из текстового поля таблицы все группы цифр и записать их в отдельное поле - например если вам нужно запись вида:

четвертый квартал 1997г - восьмидверный 2-х осный седан полный привод коробка автомат

привести к записи вида

IV - 1997 | дверей - 8 | колесная формула 4х4 | АКПП

то я вам не помощник - мне просто жалко своего времени ковыряться и телепятить

а если нужно просто

Left(Pole1,4) - или For i = Len(y) To 1 Step IsNumeric(y) = False то это уже попроще -

вы в общем формализуйте пока задачу - чего над людьми-то издеваться... времени до понедельника еще много

  Ответить  
 
 автор: Алekcaндp   (20.10.2006 в 20:12)   личное сообщение
 
 

Сорри, если что не так!
Но я ответил раньше, чем ваш последний пост появился... а сейчас вижу, что Ваш выше находится... все уже нормально решилось!
Еще раз спасибо!

  Ответить  
 
 автор: Алekcaндp   (20.10.2006 в 19:55)   личное сообщение
 
 

Спасибо за код!
Немного подкорректировав его, получил желаемый результат:
SELECT iif(IsNumeric(Left(Pole1,1)),Pole1,"") AS intValues, iif(IsNumeric(Left(Pole1,1)),"",Pole1) AS strValues INTO YourNewTable
FROM Table1;

Сейчас вручную немного поправить осталось и прайс готов

  Ответить  
 
 автор: Explorer   (20.10.2006 в 20:10)   личное сообщение
 
 

ну слава Богу, а то я чуть не расстроился...

только это не код - код - (применительно к контексту конечно) это набор функций и процедур изложенных в специальных модулях на языке VBA Visual Basic for Applications

а то, что приведено в мессидже - это SQL Statements - выражения на языке SQL Structured Query Language с использованием регулярных (и не очень) функций

хотя, если трактовать слово код как "малопонятная билеберда и тарабарщина на неизвестном языке" - то вы недалеки от истины

успехов в работе

  Ответить  
 
 автор: Алekcaндp   (20.10.2006 в 20:17)   личное сообщение
 
 

Буду знать!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList