Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / MSAccess / 8 сообщений из 8, страница 1 из 1
25.05.2004, 21:13
    #32533448
Guest9834
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSAccess
У меня в базе Access Тип поля->"Одинарное с плавающей точкой",
так вот значение типа 34,56 принимает на ура, а значение типа 34.56 не принимает как сделать чтоб принимал?
...
Рейтинг: 0 / 0
25.05.2004, 22:36
    #32533538
arseny
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSAccess
С этим ничего особенного не поделаешь.
Это региональные настройки твоего Windows. У тебя настроенны русские региональные настройки. Тобишь 30,46 - это 30 целых 46 сотых (30.46 в русской не предусмотренно). А вот с точкой (34.56) это для другой страны.
Если ты хочешь это изменить тебе надо зайти в Regional Setting в Control Panel и там это изменить.
...
Рейтинг: 0 / 0
26.05.2004, 07:21
    #32533690
Guest9834
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSAccess
Посоветуйте, как мне сделать. У меня есть 3 label
Label_click()
Label1=FormatNumber(val(inputbox(“:dsf”)),2)
.
.
есть база Access в ней три поля-> “Одинарное с плавающей точкой”
1. В inputbox я ввожу допустим 23.56 принимает, а 23,56 не принимает(все время пишет 23 если 0,23 то 0,00) . Почему?
2. С помощью ADO Connection ввожу в таблицу:
con.execute “insert into ABC(A,B,C) Values(“ & label1.caption & “ ,” & label2.caption & “, “ & label3.caption & “)”
Так вот нули (0) загоняет нормально, а если (0,00) то уже ругается, не говоря о 23,56
(Error – Не совпадает число значений запроса, и число результирующих полей.)
Хотя все совпадает.
Заранее благодарен.
...
Рейтинг: 0 / 0
26.05.2004, 09:26
    #32533787
Yanis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSAccess
У тебя получается запрос типа
con.execute “insert into ABC(A,B,C) Values(0 , 0,0, 2,3)”
То есть значений больше чем полей для вставки, поэтому и ругается.

Помогут "лишние" апострофы:
con.execute “insert into ABC(A,B,C) Values('0' , '0,0', '2,3')”

То есть вот результат:
con.execute “insert into ABC(A,B,C) Values('“ & label1.caption & “' ,'” & label2.caption & “', '“ & label3.caption & “')”

И еще мне непонятно почему используется Caption а не Value например?
...
Рейтинг: 0 / 0
26.05.2004, 10:01
    #32533844
Guest9834
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSAccess
С апострофами все заработало спасибо. А значение value для label нет, есть только caption.
А не знаете ли вы почему в inputbox я ввожу допустим 23.56 принимает, а 23,56 не принимает(все время пишет 23 если 0,23 то 0,00).
...
Рейтинг: 0 / 0
26.05.2004, 10:11
    #32533871
Yanis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSAccess
1. Насчет label - точно, я просто не глядя апострофы дописал и не посмотрел из какого контрола значения берутся.

2. У меня все "принимает".
Вот окно отладки:
Код: plaintext
1.
2.
debug.Print inputbox("Enter here")
 23 , 41 
 23 . 41 
Потому как результатом этого окна является строка если я не ошибаюсь. А как ты ее дальше будешь преобразовывать - другое дело.
...
Рейтинг: 0 / 0
26.05.2004, 10:37
    #32533933
Guest9834
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSAccess
Понятно, т.е. если val(inputbox(""))-> 23,5 : "," - считается string и выдает только 23.
...
Рейтинг: 0 / 0
26.05.2004, 11:01
    #32533982
Yanis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MSAccess
Ну если так критично преобразовывать запятую, то или в региональных настройках ее как разделитель поставь или
val(replace(inputbox("..."), ",", "."))
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / MSAccess / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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