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

Форум: MS ACCESS

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

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

 
 

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

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

тема: Помогите сварганить
 
 автор: час   (05.05.2010 в 15:48)   личное сообщение
 
 

На событие KeyPress в ListView проверяю какие данные поступают с клавы - точнее какая кнопка нажата.
Отфильтровываю только цифры, так как именно числовое поле в таблице буду заполнять.
If (KeyAscii < 48 Or KeyAscii > 57) Then Exit Sub
Далее передаю данные о текущем значении в поле и значение нажатой клавиши в функцию
STRR = FUN_IN_TEXT_BOX(Me!LV.SelectedItem.ListSubItems(2), Chr(KeyAscii))
====================================================================
Может советы или варианты етой функции у кто имеются

Public Function FUN_IN_TEXT_BOX(STR_1 As String, STR_2 As String) As String
' функция последовательного слияния данных, введённых в поле в ListView
' STR_1 уже записано в поле
' STR_2 добавить к написаному в поле
 Dim SUMMA As String

If STR_2 = "-" Then ' удаление символа
  FUN_IN_TEXT_BOX = Left(STR_1, Len(STR_1) - 1)
Else
  FUN_IN_TEXT_BOX = STR_1 & STR_2
End If 

If FUN_IN_TEXT_BOX = "" Then FUN_IN_TEXT_BOX = "0"

If InStr(1, FUN_IN_TEXT_BOX, ",", 3) <> 0 Then
  SUMMA = Left(FUN_IN_TEXT_BOX, InStr(1, FUN_IN_TEXT_BOX, ",", 3) - 1)
  SUMMA = SUMMA & "."
  FUN_IN_TEXT_BOX = SUMMA & Mid(SUMMA, InStr(1, FUN_IN_TEXT_BOX, ",", 3) + 1)
End If

If Right(FUN_IN_TEXT_BOX, 1) = "." Then FUN_IN_TEXT_BOX = FUN_IN_TEXT_BOX & "0"

End Function

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

а для чего?


If (KeyAscii < 48 Or KeyAscii > 57) Then Exit Sub


а если число 12,25 - тада как

чето похожее

Private Sub Поле14_KeyPress(KeyAscii As Integer)

Select Case KeyAscii - анализируем нажатую клавишу
Case 1040 To 1103 - это символы кирилицы (в данном случае)
N_G = N_G & ChrW(KeyAscii) - это к глобальной переменной добавил нажатый символ.
end select
end sub

  Ответить  
 
 автор: час   (06.05.2010 в 08:58)   личное сообщение
 
 

если число 12,25 - тада как
Тада так:
If (KeyAscii < 48 Or KeyAscii > 57) AND KeyAscii <> 44 Then Exit Sub

  Ответить  
 
 автор: kot_k_k   (06.05.2010 в 09:55)   личное сообщение
 
 

а точечку захочет юзерская душа вводить а не зпт, или как в 1С разделять запятыми - а точка для десятичного, али пробелами возалчет яго душа пользоваться - как в Екселе

  Ответить  
 
 автор: час   (06.05.2010 в 10:12)   личное сообщение
 
 

Вот вот - потому и хочу функцу написать чтобы это всё отлаливать и оставлять толь ко как нужно
12.5

  Ответить  
 
 автор: kot_k_k   (06.05.2010 в 12:51)   личное сообщение
 
 

а не поще указать формать поля "Число" и оно само не даст ввести тебе "13ав123,23,23!Э"

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