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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Пойск
 
 автор: ddi   (29.06.2011 в 14:59)   личное сообщение
 
 

Хочу создать пойск по б.д пойск по адресу или по имени или по тел. номеру это всё понятно зделую
но проблема в том что б\д я получаю из другой компании на работе стоит виндовс XP sp3 English
как я понимаю винда по умалченю пишет в юникоде ни так ли ? а в б\д даные в анси как это зделать ? и ещё StrConv непридлогать пробывал непомагает(может быть я неправилно исползывал если можно пример)

  Ответить  
 
 автор: snipe   (29.06.2011 в 15:33)   личное сообщение
 
 

базу в каком файле присылают (тип)?
и на каком языке (я имею язык шрифта)

  Ответить  
 
 автор: ddi   (29.06.2011 в 15:42)   личное сообщение
 
 

базу в dbf ну я инпортирую в accdb а шрифт arial armenian

  Ответить  
 
 автор: snipe   (29.06.2011 в 15:46)   личное сообщение
 
 

и что - иероглифы в итоге?
а если не импортировать, а связать с dbf

  Ответить  
 
 автор: ddi   (29.06.2011 в 15:56)   личное сообщение
 
 

ник: snipe
и что - иероглифы в итоге?
а если не импортировать, а связать с dbf
нет всё нормално не каких ироглифов!

  Ответить  
 
 автор: snipe   (29.06.2011 в 16:01)   личное сообщение
 
 

тогда я ни чего не понял
если инфа нормально импортируется
то в чем проблема

  Ответить  
 
 автор: ddi   (29.06.2011 в 16:03)   личное сообщение
 
 

немагу пойск рализовать

  Ответить  
 
 автор: snipe   (29.06.2011 в 16:13)   личное сообщение
 
 

ну - тут зависит от того как вы хотите реализовать интерфейс

можно менять RecordSource формы (поля для поиска разместить в верхнем колонтитуле)
можно использовать свойство формы Filter

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

да мало ли способов как можно изголиться

  Ответить  
 
 автор: ddi   (29.06.2011 в 16:58)   личное сообщение
 
 

способов много но не савпадаёт написоное слово в пойске с словом в б/д но если копировать слово из б/д то работает

  Ответить  
 
 автор: snipe   (29.06.2011 в 17:01)   личное сообщение
 
 

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

  Ответить  
 
 автор: ddi   (29.06.2011 в 17:03)   личное сообщение
 
 

нет 2007

  Ответить  
 
 автор: snipe   (29.06.2011 в 17:05)   личное сообщение
 
 

ну тогда код который запускает поиск

  Ответить  
 
 автор: ddi   (29.06.2011 в 17:06)   личное сообщение
14 Кб.
 
 

вот 2007

  Ответить  
 
 автор: ddi   (03.07.2011 в 12:02)   личное сообщение
 
 

Люди не ужели никто не может помоч ? есть таблица внём всё в Анси надо конвертировать всё в Юникод но желателно юникод в анси

  Ответить  
 
 автор: ddi   (04.07.2011 в 10:44)   личное сообщение
 
 

Help

  Ответить  
 
 автор: AlexSyr   (04.07.2011 в 11:01)   личное сообщение
31 Кб.
 
 

А у меня крякозябры - не установлена ваша кодовая страница==>>
Самый простой способ отделить проблемы с поиском от проблем кодировок - пробовать все с английским текстом. Тогда проблемы кодировок отпадают. И если поиск работает правильно - тогда уже копать дальше.

  Ответить  
 
 автор: ddi   (04.07.2011 в 11:13)   личное сообщение
 
 

AlexSyr пойск работает но текст в б\д анси а винда по умалчению пишет в юникоде мне нужно конвертировать юникод в анси

  Ответить  
 
 автор: Дядя Федор   (04.07.2011 в 11:19)   личное сообщение
 
 

http://allo.usaaa.ru/workshop/extreme/unicode/unicode.htm
http://www.microsoft.com/Rus/Msdn/Activ/MSVB/Archive/VBA/Decoder/VBVariables1_2.mspx

поищи в яндексе UNICODE ANSI VBA

  Ответить  
 
 автор: ddi   (04.07.2011 в 11:28)   личное сообщение
 
 

Дядя Федор знаеш сколко искал. StrConv не помагает или я чтото не так исползую ?

  Ответить  
 
 автор: ddi   (04.07.2011 в 11:37)   личное сообщение
 
 

У меня такая идея есть написать такую функцию:
например если буква А в юникоде то изминить его в еквивалент в Анси исползуя ChrW и Chr

  Ответить  
 
 автор: Дядя Федор   (04.07.2011 в 11:52)   личное сообщение
 
 

Внимательно почитай вторую ссылку. Особенно про установки в реестре

  Ответить  
 
 автор: AlexSyr   (04.07.2011 в 13:07)   личное сообщение
 
 

Так я про то-же и говорю.
При импорте из dbf идет преобразование ASCII -> Unicode, причем в той кодовой странице, которая указывается. Т.е. это будут диапазоны:

0400 - 04FF - Cyrillic
0530 - 058F - Armenian

Отсюда я и вижу крякозябры, т.к. ddi выложил уже преобразованную таблицу в диапазоне, которого у меня нет.
Я не пойму одного - зачем преобразовывать - программа сама должна все это делать автоматически.
Или сам поиск построен у ddi именно на преобразованиях кодировок - тогда нужно в StrConv использовать соответствующий LocaleID.
Или я туплю?!!

  Ответить  
 
 автор: ddi   (04.07.2011 в 13:17)   личное сообщение
 
 


Или я туплю?!!


нет
Просню ситуацию я палучаю б\д в форматье дбф(фокс про) там инфа записана с помащю програмы KDWIN такая дурацкая прога (это для линтайев или которые незнают что через винду тоже можна включить подержку армянского языка !)она по умалчению пишат в анси ! я импартирую эту базу в акссес версия 2007 всё работает всё видноно пойс не работает точнее нет совпадений причина Юникод и анси или я не прав но пойск работает если анси - анси или юникод - юникод ! вот и мне нужно конвертировать юникод в анси!

  Ответить  
 
 автор: AlexSyr   (04.07.2011 в 14:27)   личное сообщение
 
 

Вы можете подготовить тестовый dbf в той же программе, с парой строчек типа: "Проверка" и "Test"?

  Ответить  
 
 автор: ddi   (04.07.2011 в 14:35)   личное сообщение
 
 

а зачем ?

  Ответить  
 
 автор: AlexSyr   (04.07.2011 в 15:05)   личное сообщение
24 Кб.
 
 

Ну для начала удивлен фразой:


она по умалчению пишат в анси !


dbf файл пишет в ASCII (для русского - это кодовая страница DOS866).
Вы же говорите, что пишет в ANSI (для русского - это кодовая страница WIN1251).
И при всем при этом импорт у вас проходит без крякозябр - вот я и удивлен.
Попытки у себя повторить Вашу ситуацию не проходят.
Для примера ==>>
там таблица TableFromDBF получена путем импорта из dbf файла (тоже прицепил), а форма FormFromDBF делает поиск по этой таблице.

  Ответить  
 
 автор: ddi   (04.07.2011 в 15:35)   личное сообщение
 
 

AlexSyr я про КДВИН говарю он в анси пишет ......... я уже запутолся((((((((((
есть инет сайт он он кадирует армянскую анси в армянскый юникод и обратно написал текст конвертировал пойск заработал так не палучаеца что в анси ? я про сваю Б\Д гаварю (акссес 2007) там анси

  Ответить  
 
 автор: Дядя Федор   (04.07.2011 в 15:11)   личное сообщение
 
 

1.А поиск по ID не катит? Тогда не надо мучиться с кодировками.
2.А в строке для поиска отображается нормально? На армянском?

  Ответить  
 
 автор: ddi   (04.07.2011 в 15:32)   личное сообщение
 
 

Нет пойск по Ф.И.О. да но если изменён шрифт

  Ответить  
 
 автор: ddi   (04.07.2011 в 15:39)   личное сообщение
 
 

http://unicodenow.com/

  Ответить  
 
 автор: snipe   (04.07.2011 в 16:38)   личное сообщение
 
 

посмотрите в сторону

DoCmd. TransferDatabase

там вроде язык можно задавать

  Ответить  
 
 автор: ddi   (04.07.2011 в 16:50)   личное сообщение
 
 

тоже самое

  Ответить  
 
 автор: AlexSyr   (04.07.2011 в 18:42)   личное сообщение
 
 

Интересно!!!
Во как получается:
- Если копируется ячейка из поля, затем перекодируется на сайте, затем вставляется в поле, то в базе все ОК - сохраняется строка в Юникоде
- Если использовать StrConv(<поле>, vbUnicode, 1067), где 1067 - Армянский LocaleID (вроде как ), то функция считает, что на входе ANSI и перекодирует КАЖДЫЙ байт, хотя на входе 2-байтный Unicode. Т.е. получается добавление лишней пары 0000.
- Если использовать StrConv(StrConv(<поле>, vbFromUnicode, 1067), vbUnicode, 1067), т.е сначала в ANSI, а потом в Unicode, то в начало поля добавляется FFFE-признак Unicode, а затем на каждый символ 1 байт.

Чудеса!!!

  Ответить  
 
 автор: Дядя Федор   (04.07.2011 в 23:16)   личное сообщение
 
 

  Ответить  
 
 автор: AlexSyr   (04.07.2011 в 23:31)   личное сообщение
 
 

- это в смысле несогласен?

  Ответить  
 
 автор: Дядя Федор   (05.07.2011 в 08:07)   личное сообщение
 
 

Да нет. Удивление с почтением.

  Ответить  
 
 автор: ddi   (05.07.2011 в 08:25)   личное сообщение
 
 

  Ответить  
 
 автор: ddi   (05.07.2011 в 08:25)   личное сообщение
 
 

так что делать неужели выхода нет ?

  Ответить  
 
 автор: ddi   (05.07.2011 в 08:33)   личное сообщение
 
 

1067 - это армянский

  Ответить  
 
 автор: AlexSyr   (05.07.2011 в 14:34)   личное сообщение
157 Кб.
 
 

Никак не могу повторить Вашу ситуацию - отсюда и недостаток в вариантах решения.
Т.е. вот так происходит импорт, ... у меня:
1. при импорте из dbf файла Access не предлагает выбор кодовых страниц, а автоматом конвертирует из ASCII (у меня DOS866) в Unicode. Таблицу переконвертации можно посмотреть Пуск -> Стандартные -> Служебные -> Таблица символов (для русского см левая картинка ==>>)
В данном случае все СТАНДАРТНО - все РАБОТАЕТ
2. Вы утверждаете (для этого и просил Ваш dbf), что драйвер KDWIN вместо ASCII вставляет ANSI. Я и это пытался сделать - заменил в dbf коды (у меня - WIN1251).
При импорте ОПЯТЬ идет конвертация согласно вышеописанному, но исходными уже являются другие коды - отсюда КРЯКОЗЯБРЫ.
У Вас же текст конвертируется НОРМАЛЬНО. Значит - скорее всего отсутствует перекодировка, значит надо смотреть коды символов в dbf и уже сконвертированные а Access'е. И далее уже по результату - если коды совпадают, за исключением того, что они становятся 2-байтовые, то достаточно в старшие разряды Unicode добавить Ваш диапазон (конкретно для Армянского - 05). Если нет, то копать дальше - ...

Есть правда одна задумка - через буфер обмена - пытаюсь проверить, но нужно время

  Ответить  
 
 автор: ddi   (05.07.2011 в 14:43)   личное сообщение
 
 

Давй так ты говариш что текст в таблице юникод не так ли а почиму пойск не работает но писать текст через тот сайт конвертировать в анис всё работает спрашеваеца Why?

  Ответить  
 
 автор: ddi   (05.07.2011 в 14:45)   личное сообщение
 
 

Я бы хотел такую функцию написать по мойему будет работать (для конвертации текста из из юникода в анси для армянсково) исползуя функцию chr() и chrW() но я незнаю откуда найти коды синволв для армянского языка в юникоде и в анис

  Ответить  
 
 автор: kot_k_k   (05.07.2011 в 14:51)   личное сообщение
73 Кб.
 
 

ну юникод Ворд - вставка символа и там все расписано

  Ответить  
 
 автор: час   (05.07.2011 в 14:55)   личное сообщение
 
 

А какой он - армянский алфавит?
Какие символы?
Свои?
==============
http://oleg-borisov.narod.ru/4-auth/smilo/ab5.htm

  Ответить  
 
 автор: ddi   (05.07.2011 в 15:10)   личное сообщение
 
 

а юникод в ОЕМ конвертор есть ? такого кода тоже нету ?

  Ответить  
 
 автор: час   (05.07.2011 в 15:18)   личное сообщение
 
 

ASC(Символ) - Возворшает код

CHR(код) - Возврошает символ

CHR$(код) - возврашеает тоже.

  Ответить  
 
 автор: ddi   (05.07.2011 в 15:22)   личное сообщение
 
 


ник: час
ASC(Символ) - Возворшает код
CHR(код) - Возврошает символ
CHR$(код) - возврашеает тоже.


Знаю но спасибо

  Ответить  
 
 автор: час   (05.07.2011 в 15:35)   личное сообщение
 
 

Ну тогда - введя буквы - можешь узнать коды символов Армянского алфавита.

  Ответить  
 
 автор: ddi   (05.07.2011 в 15:48)   личное сообщение
 
 

вот такие знаки ????????????????????????????????????????????????????

  Ответить  
 
 автор: час   (05.07.2011 в 16:20)   личное сообщение
 
 

Это - не похожэ на алфавит

http://www.eanc.net/ru/transliteration/

  Ответить  
 
 автор: ddi   (05.07.2011 в 16:37)   личное сообщение
 
 

Час где найти юникодв анси конвертор код в вба ? или юникод в оем у меня есть конвертор оем в анси )

  Ответить  
 
 автор: AlexSyr   (05.07.2011 в 17:14)   личное сообщение
 
 

Чтобы все встало на свои места составь вот такую табличку (только со своим словом и кодами):

    DOS866     WIN1251      UNICODE RUS-04
    Hex Dec    Hex Dec    Low Byte High Byte
                          Hex Dec  Hex Dec
--------------------------------------------
П - 8F (143) - CF (207) - 1F (31)   04 (4)
р - E0 (224) - F0 (240) - 40 (64)   04 (4)
о - AE (174) - EE (238) - 3E (62)   04 (4)
в - A2 (162) - E2 (226) - 32 (50)   04 (4)
е - A5 (165) - E5 (229) - 35 (53)   04 (4)
р - E0 (224) - F0 (240) - 40 (64)   04 (4)
к - AA (170) - EA (234) - 3A (58)   04 (4)
а - A0 (160) - E0 (224) - 30 (48)   04 (4)
--------------------------------------------

То что в колонке DOS - это должно быть в dbf файле - нужно посмотреть. Если же, KDWIN подменяет коды на ANSI, то там должны быть коды из колонки WIN.
Колонка UNICODE - "Как должно быть". Все колонки можно взять из Таблицы символов.
Далее интереснее - нужно посмотреть какие коды в поле таблицы после импорта. Можно таким способом:

Dim x() As Byte
x = <поле>

Ставится Breakpoint и в Locals Window смотрятся коды - дозаполняешь табличку еще одной колонкой "Как есть". Кидаешь сюда - далее будем поглядеть что куда переконвертируется.

  Ответить  
 
 автор: ddi   (05.07.2011 в 17:45)   личное сообщение
 
 

хачю вот такую фнукцию написать пракатит ли она или нет П.С. я не очен селён в ВБА так что не сильно ругайте(и В русском языке)
есть форма в форме поле P в этом поле водица текст для ройска в юникоде надо конвертировать ево в анси и вставит в поле P1
Начну
Private Sub find_Click()
Dim i As Long
Dim a As String
Dim z As Long
i = Len(Me.p)
For z = 1 To i
a = Mid(Me.p, z, 1)
a = AscW(a)
Select Case a
Case ChrW(561) ' дапустим еквиволент символа 561 это 33 в анси
Me.P1 = Chr(33)
'************
End Select
Next z
End Sub
прокатит ли ?

  Ответить  
 
 автор: AlexSyr   (05.07.2011 в 18:18)   личное сообщение
 
 



a = AscW(a)
Select Case a
Case ChrW(561) ' дапустим еквиволент символа 561 это 33 в анси


Во первых перед Select Case переменная a ,будет содержать СТРОКУ с кодом, значит как минимум нужно:

не Case ChrW(561)
а Case "561"

Кроме того Вы думаете, что если Me.P1 = Chr(33), то вставили ОДНОБАЙТОВЫЙ код.
Проверяйте:

Dim x() As Byte
...
Me.P1 = Chr(33)
    MsgBox LenB(Me.P1)   'выведется 2, т.е. ДВА БАЙТА
    x = Me.P1          'Ставим Breakpoint, нажимаем один раз F8, смотрим в Locals Window

Видим в массиве х ДВА БАЙТА - 33 и 0, т.е. вставили UNICODE, причем для Basic Latin кодовой страницы. Вы этого добиваетесь???


из хелпа:
Text is stored in ANSI format within Access Basic code and in Unicode format in Visual Basic (Access Basic was used in early versions of Microsoft Access).

  Ответить  
 
 автор: ddi   (06.07.2011 в 12:20)   личное сообщение
 
 

нет так как зделать вроде алфавит гатов уже есть их коды

  Ответить  
 
 автор: AlexSyr   (06.07.2011 в 13:29)   личное сообщение
 
 

Смотрите выше табличку - как только Вы заполните ее как описано, так и станет ясно что дальше делать.

  Ответить  
 
 автор: ddi   (06.07.2011 в 13:46)   личное сообщение
 
 

?

  Ответить  
 
 автор: AlexSyr   (06.07.2011 в 13:59)   личное сообщение
 
 

Что непонятно?

  Ответить  
 
 автор: ddi   (06.07.2011 в 14:13)   личное сообщение
 
 

Я уже запутался

  Ответить  
 
 автор: ddi   (06.07.2011 в 14:19)   личное сообщение
 
 

AlexSyr Гаварю же я не очень силён в вба

  Ответить  
 
 автор: AlexSyr   (06.07.2011 в 14:32)   личное сообщение
 
 

Поэтому я и просил заполнить табличку кодами - ну НЕТ у меня армянского.
Или непонятно как заполнить табличку?

  Ответить  
 
 автор: ddi   (06.07.2011 в 14:40)   личное сообщение
 
 

http://unicodenow.com/ там с права армянские букви жиёш на них вводит еквивалент в анси и юникод но правдо у мена в вба не получилось вроде не те коды(

  Ответить  
 
 автор: ddi   (06.07.2011 в 15:17)   личное сообщение
106 Кб.
 
 

вот

  Ответить  
 
 автор: ddi   (06.07.2011 в 16:10)   личное сообщение
11 Кб.
 
 

И в аксее

  Ответить  
 
 автор: ddi   (06.07.2011 в 16:14)   личное сообщение
 
 

коды(юникода) работают но анси нет или пишет синволы на англиском или вобше пробелы

  Ответить  
 
 автор: ddi   (06.07.2011 в 16:48)   личное сообщение
 
 


Private Sub find_Click()
Dim i As Long 
Dim z As Long 
Dim a As Long
If IsNull(Me.p) Then
MsgBox "Напишитье ФИО"
Me.p.SetFocus
Exit Sub
End If
For z = 1 To Len(Me.p)
If IsNull(DLookup(" [Usysconvert]![ansi] ", "Usysconvert", " [Usysconvert]![unicode]  = " & AscW(Mid(Me.p, z, 1)))) _
Or IsError(DLookup(" [Usysconvert]![ansi] ", "Usysconvert", " [Usysconvert]![unicode]  = " & AscW(Mid(Me.p, z, 1)))) Then
MsgBox "Напишитье армянскими буквами"
Exit Sub
End If
a = DLookup(" [Usysconvert]![ansi] ", "Usysconvert", " [Usysconvert]![unicode]  = " & AscW(Mid(Me.p, z, 1)))
'Me.P1 = ????????
Next z
End Sub

  Ответить  
 
 автор: AlexSyr   (06.07.2011 в 16:57)   личное сообщение
 
 

Начинаем с начала.
Создаем модуль, в него кладем:

Declare Function GetACP Lib "kernel32" () As Long
Declare Function GetOEMCP Lib "kernel32" () As Long

Public Sub TestCP()
  MsgBox "WIN" & GetACP & " - DOS" & GetOEMCP
End Sub

Нажимаем F5, т.е. запускаем TestCP. Что выводит?
Кстати, ICQ есть?

  Ответить  
 
 автор: ddi   (06.07.2011 в 17:04)   личное сообщение
 
 

AlexSyr телефоный номер дай с кодом позваню с рабочево))))(бесплатно )

  Ответить  
 
 автор: ddi   (06.07.2011 в 17:04)   личное сообщение
 
 

Зделал Ура Ура Ура

  Ответить  
 
 автор: ddi   (06.07.2011 в 17:06)   личное сообщение
 
 

Но не так как бы хотелась но конвертирует не Из юникода в анси а из анси в юникод правда в роле паказывает не ФИО целиком а только толко фамилию если нажать на поле то тагда целиком наверное пробел не конвертировал ((((

  Ответить  
 
 автор: ddi   (06.07.2011 в 17:07)   личное сообщение
 
 

Function f(i As String)
Dim z As Long
Dim a As String
For z = 1 To Len(i)
a = a & ChrW(Nz(DLookup(" [Usysconvert]![unicode] ", "Usysconvert", " [Usysconvert]![ansi] = " & AscW(Mid(i, z, 1))), 0))
Next z
f = a
End Function

  Ответить  
 
 автор: ddi   (06.07.2011 в 17:08)   личное сообщение
 
 

вроде всё зделал наверно нада в NZ(*****,здесь написать код пробела в юникоде )

  Ответить  
 
 автор: ddi   (06.07.2011 в 17:09)   личное сообщение
 
 

или нет такова ?

  Ответить  
 
 автор: ddi   (06.07.2011 в 17:43)   личное сообщение
 
 

оказываеца что не все буквы единтичны по кодои (есть разница ) например ес буква в анси а в юникоде этот код сотвествуеь запитой изминел солко нашол но осталась проблема с пробелом в анси и юникоде например в анси с

  Ответить  
 
 автор: AlexSyr   (06.07.2011 в 18:02)   личное сообщение
 
 

Тогда, наверное, и так будет работать:

Private Function TwoAnsi2Unicode(ByVal strIN As String) As String
  Dim bytTmp() As Byte
  Dim intI As Integer
  
  bytTmp = strIN
  For intI = 0 To UBound(bytTmp) Step 2
    TwoAnsi2Unicode = TwoAnsi2Unicode & Chr(bytTmp(intI))
  Next
End Function

  Ответить  
 
 автор: ddi   (06.07.2011 в 18:15)   личное сообщение
 
 

нет не работает!

  Ответить  
 
 автор: ddi   (06.07.2011 в 18:39)   личное сообщение
 
 


Function f(i As String)
Dim z As Long
Dim a As String
For z = 1 To Len(i)
a = a & ChrW(DLookup(" [Usysconvert]![unicode] ", "Usysconvert", " [Usysconvert]![ansi] = " & AscB(Mid(i, z, 1))))
Next z
f = a
End Function


Подскажитье где здесь ошибка

  Ответить  
 
 автор: AlexSyr   (06.07.2011 в 22:24)   личное сообщение
 
 

А что за ошибка?
Функция выглядит работоспособной

  Ответить  
 
 автор: ddi   (07.07.2011 в 08:30)   личное сообщение
 
 

Давай я сам для сибя происню а ты скажеш в чём разница ?Майл агент есть ?

  Ответить  
 
 автор: ddi   (07.07.2011 в 08:48)   личное сообщение
 
 

как я понимаю AscB(Mid(i, z, 1))))
ета функция возврашает цфричный код буквы в анси кадировке вроде так ?

  Ответить  
 
 автор: ddi   (07.07.2011 в 09:14)   личное сообщение
 
 

Коды цыфер в анси и в юникоде стандартны ?

  Ответить  
 
 автор: ddi   (07.07.2011 в 09:22)   личное сообщение
 
 

и ещё как передать НУЛ значения поля а то есть такие поля где нет ничево а при конвертациипишет ошибка не в функции а в поле где сохрянаюца данные

  Ответить  
 
 автор: AlexSyr   (07.07.2011 в 10:28)   личное сообщение
 
 

Никаких Null НЕЛЬЗЯ допускать.
Вы должны полностью заполнить таблицу перекодировки. 96 кодов ANSI-UNICODE для кодовой страницы 1067, остальные из кодовой страницы 1033 (English - United States) - иначе не будут перекодироваться цифры, знаки пунктуации, ... А все что останется пустым заполнить кодом пробела/вопроса/...

  Ответить  
 
 автор: Explorer   (07.07.2011 в 11:11)   личное сообщение
 
 

можно поставить Nz и что-то вставлять в случае отсутствия значения - пробел, например

  Ответить  
 
 автор: ddi   (07.07.2011 в 13:32)   личное сообщение
 
 

нет так пробывал не катит

  Ответить  
 
 автор: AlexSyr   (07.07.2011 в 10:11)   личное сообщение
 
 

Если быть более точно, то AscB(Mid(i, z, 1)))) возвратит МЛАДШИЙ БАЙТ выбранного символа.
В Вашей КОНКРЕТНОЙ ситуации - код ANSI.

  Ответить  
 
 автор: ddi   (07.07.2011 в 10:39)   личное сообщение
 
 

какой код пробела

  Ответить  
 
 автор: ddi   (07.07.2011 в 13:44)   личное сообщение
 
 

2 вапроса как из двух слов (в одном поле) напремер Фамилия (пробел) Имя зделать два поля где в первом будит фамилия а в втаром имя ?

  Ответить  
 
 автор: ddi   (07.07.2011 в 13:46)   личное сообщение
 
 

Наверно для каждой ячейки надо прочитать слово до пробела и копровать с первова до пробела и для втаров после пробела до конца ?

  Ответить  
 
 автор: kot_k_k   (07.07.2011 в 14:14)   личное сообщение
 
 

а если фамилия двойная "Бендер Задунайский" (а злобный юзер черточку пробелом заменил) или имя двойное "Гаcсан Абдуррахман"

  Ответить  
 
 автор: kot_k_k   (07.07.2011 в 14:19)   личное сообщение
 
 

можно так
=Split(поле_ФИО, " ")
получим массив содержащий Фамилию (0-й элемент массива) Имя (1-й) Отчество (2-й)
если больше т.е. Ubound(нашмассив) > 2 - то тогда нужно разруливать где двойные имя или фамилия а мож отчество

  Ответить  
 
 автор: ddi   (07.07.2011 в 14:35)   личное сообщение
 
 


ник: kot_k_k
а если фамилия двойная "Бендер Задунайский" (а злобный юзер черточку пробелом заменил) или имя двойное "Гаcсан Абдуррахман"


Нет такова нету а б/д не юзера а Газывой фирмы или Электросетьи или водоканал вобшум там всё тончно проблема была в анси вроде работает не шита 4-5 ошибок ;)(при конвертации)

  Ответить  
 
 автор: kot_k_k   (07.07.2011 в 14:49)   личное сообщение
 
 

я не про конвертацию грил


2 вапроса как из двух слов (в одном поле) напремер Фамилия (пробел) Имя зделать два поля где в первом будит фамилия а в втаром имя ?

Наверно для каждой ячейки надо прочитать слово до пробела и копровать с первова до пробела и для втаров после пробела до конца ?


я про то что таким методом мы найдем только 2 или 3 слова из которых обычно состоит ФИО - нужно строку добивать до конца, а Split это делает сразу.

а юзер злобный он вездесущь

  Ответить  
 
 автор: AlexSyr   (07.07.2011 в 14:23)   личное сообщение
 
 

Наверное это не в этом топике надо бы, а то уже больно большой стал - читать неудобно
А вообще масса способов существут. Мне понравился такой:
kot_k_k опередил

?Split("aaaaa bbbbb")(0)
aaaaa
?Split("aaaaa bbbbb")(1)
bbbbb

И также поддерживаю замечание kot_k_k
Код пробела можно было бы и самому посмотреть (Hex - 20; Dec - 32 -> Chr(32))

  Ответить  
 
 автор: ddi   (07.07.2011 в 14:26)   личное сообщение
 
 


Код пробела можно было бы и самому посмотреть (Hex - 20; Dec - 32 -> Chr(32))

  Ответить  
 
 автор: ddi   (07.07.2011 в 15:04)   личное сообщение
 
 

прокатит ли
Select Case a
Case ""
Me.P = Chr(32)
или Me.P = " "
просто немагу исползывать даные очень велики при кждой папытки уходит 5 минут

  Ответить  
 
 автор: kot_k_k   (07.07.2011 в 15:16)   личное сообщение
 
 

me.P=iif(a="","пробел","не пустое")

  Ответить  
 
 автор: ddi   (08.07.2011 в 15:52)   личное сообщение
 
 

Зделал всё работает всем спасибо

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