powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему отображается только часть поля, длина которого 10 знаков?
29 сообщений из 29, показаны все 2 страниц
Почему отображается только часть поля, длина которого 10 знаков?
    #36264279
DataGrid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую DataGrid1 в своей программе на VB6

Это происходит только если я попадаю мышкой в это поле (с другими полями та же проблема)
Т.е. если мышкой в поля не тыкать, то проблем нет.
Но мне надо сделать и редактирование и просмотр.
Код: plaintext
1.
2.
3.
4.
5.
    Set DataGrid1.DataSource = Me.Adodc1

    Me.DataGrid1.Columns( 0 ).Caption = "ТЕЛЕФОН"
    Me.DataGrid1.Columns( 0 ).NumberFormat = "(000) 000 00 00" 
    Me.DataGrid1.Columns( 0 ).DataField = "telefon"
Подскажите пожалуйста, как кодом VB наладить отображение данных ?

Картинка с вымышленными значениями
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36265648
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DataGrid,

У тебя там поле с длиной не 10 знаков...
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36265663
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DataGrid,

Если ты имел ввиду часть, то слово часть - женского рода: длина котор ой 10 знаков. Я проверил твой случай на своей DataGrid1 совместно с Adodc1, он у меня не воспроизводится.

Попробуй поменять грид и посмотри, что получится.

Успехов.
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36265787
DаtаGrid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нет, это поле 10 знаков, тип string, просто в этом поле только цифры, номер телефона
отображается нормально,
а вот когда мышкой попаду в поле, неважно в какое, первое поле, второе
то отображается только часть поля

что за ерунда, не пойму
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36266268
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это потому, что ты сделал фортированное отображение данных в колонке. вводить же тебе придется только 10 символов (длина твоего поля) без форматирования
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36266485
DаtаGrid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо.
А нельзя сделать чтобы и при вводе сохранялось форматирование и как это сделать?
Если нельзя, то в каком Grid-е это возможно?
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36266619
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в гриде вряд ли. а так есть masked edit control в составе Microsoft Common Controls
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36266694
DаtаGrid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Благодарю Вас Konst_One и VladConn
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36267289
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One,

Я сделал такое же форматирование на такой же колонке, у меня проблема не воспроизводится.
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36267292
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тогда автор что-то недоговаривает. я сейчас проверить не могу.
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36267746
DаtаGrid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я когда мышкой тыкаю в поле, чтобы отредактировать значение
появляется только часть значения выделенное синим цветом,
а мне бы хотелось чтобы сохранился формат отображения
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36267759
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В строке случаем не затесался vbCrLf?

Jah loves you.
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36268880
DаtаGrid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyВ строке случаем не затесался vbCrLf?Да нет, там в текстовом поле "telefon" только цифры, причём поле заполнено полностью, т.е. 10 цифр.
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36268897
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что за грид вы юзаете?
надо использовать Microsoft DataGrid Control 6.0 (SP6) (OLE DB)
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36270227
DаtаGrid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, спасибо Вам за Ваше участие

да, именно этот компонент, только SP5

я вот сейчас закоментировал строку форматирования
Код: plaintext
1.
2.
'    Me.DataGrid1.Columns(0).NumberFormat = "(000) 000 00 00"
'    Me.DataGrid1.Columns(1).NumberFormat = "(000) 000 00 00" 
и всё равно, в тот момент когда я тыкаю мышкой в это поле, значение отсекается
т.е. получается тот же вид что я выложил сюда (картинку) только уже без формата
значит дело не в форматировании?
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36361469
DataGrid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
up
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36361516
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А поле в БД случайно не ограничено 10-ю знаками?
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36361522
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на Microsoft DataGrid Control 6.0 (SP6) (OLE DB) + ADODB.Recordset в качестве DataSource не воспроизводиться данная проблема.
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36363792
afal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А попробуй увеличить в DataGrid ширину поля (столбца), например в два раза.
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36364973
DataGrid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Спасибо что нашли время посмотреть.
Я сейчас удалил из Form1 объекты Adodc1 и DataGrid1
И поместил заново на Form1
Ничего в этих объектах не менял, запустил только этот код,
В общем, если мышкой не кликать по ячейкам, то всё отображается нормально,
стоит только ткнуть мышкой по любой ячейке с телефоном, то отображается только часть значения.

Код: plaintext
1.
    strSQL = "SELECT pole1, telefon FROM tmpTELEFON"
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    Me.Adodc1.UserName = "Admin"
    Me.Adodc1.RecordSource = strSQL
'   Me.Adodc1.RecordSource = "tmpTELEFON"
    Me.Adodc1.CursorType = adOpenStatic
    Me.Adodc1.LockType = adLockReadOnly
    Me.Adodc1.Mode = adModeShareDenyRead
    Me.Adodc1.CursorLocation = adUseClient
    Me.Adodc1.CommandType = adCmdText   'adCmdTable
    Me.Adodc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & mdb & ";Persist Security Info=False"
    Me.Adodc1.Refresh
    Me.Adodc1.Caption = Me.Adodc1.Recordset.RecordCount

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
    Me.DataGrid1.ClearFields
    Me.DataGrid1.Refresh
    
    Me.DataGrid1.Visible = True
    Me.DataGrid1.AllowUpdate = False
    Me.DataGrid1.AllowRowSizing = False

    Me.DataGrid1.RowHeight =  280 
    Me.DataGrid1.Caption = "СПИСОК"
    Me.DataGrid1.HeadLines =  2 
    
    Set DataGrid1.DataSource = Adodc1

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
    Me.DataGrid1.Columns( 0 ).WrapText = True
    Me.DataGrid1.Columns( 0 ).Caption = "поле1"
    Me.DataGrid1.Columns( 0 ).NumberFormat = "(0000) 000 00 00"    'ПРОБОВАЛ ТАК
    Me.DataGrid1.Columns( 0 ).DataField = "pole1"
    Me.DataGrid1.Columns( 0 ).Locked = True
    
    Me.DataGrid1.Columns( 1 ).WrapText = True
    Me.DataGrid1.Columns( 1 ).Caption = "ТЕЛЕФОН"
    Me.DataGrid1.Columns( 1 ).NumberFormat = "(000)\ 000\ 00\ 00" 'ПРОБОВАЛ ТАК
    Me.DataGrid1.Columns( 1 ).DataField = "telefon"
    Me.DataGrid1.Columns( 1 ).Width =  4000     'СДЕЛАЛ ШИРЕ, раза в два

ПОКА И это не помогло
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36364990
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DataGrid,

Повторю вопрос - какой тип и размер данных соответствующего поля БД?
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36365086
DаtаGrid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тип поля String, значения в таблице - цифры
длина во втором поле telefon - 10 символов, ну то есть 10 цифр,
например 0123456789
форматируется так (012) 345 67 89
но когда я мышкой кликаю в какую-нибудь ячейку, этого грида, появляется только часть значения с синим фоном
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36365107
DаtаGrid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
неужели придётся идти на поводу у этого грида и делать длину поля в самой таблице больше именно на то кол-во символов, которое вставляется при форматировании?
то есть 01234546789
после (012) 345 67 89
функция формат втиснула в значение две скобки и три пробела
значит длину поля внутри таблицы надо увеличивать 5 символов?
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36365114
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ещё раз рекомендую использовать напрямую ADODB.Recordset в качестве источника записей вашего грида.
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36365147
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DаtаGrid неужели придётся идти на поводу у этого грида и делать длину поля в самой таблице больше именно на то кол-во символов, которое вставляется при форматировании?
то есть 01234546789
после (012) 345 67 89
функция формат втиснула в значение две скобки и три пробела
значит длину поля внутри таблицы надо увеличивать 5 символов?

Вы ПОПРОБУЙТЕ для начала сделать поле БД в 20 символов
Сразу станет понятно, в этом ли причина.

У меня как раз предположение, что это глюк датагрида, что он учитывает длину поля, но не учитывает формат.

От того, что вы расширите длину поля в БД ничего страшного не произойдет
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36365151
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneещё раз рекомендую использовать напрямую ADODB.Recordset в качестве источника записей вашего грида.

Если я прав - это не поможет без преобразования типа данных, хотя бы самим запросом.
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36365181
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneна Microsoft DataGrid Control 6.0 (SP6) (OLE DB) + ADODB.Recordset в качестве DataSource не воспроизводиться данная проблема.

я уже проверял, всё нормально отображается.
сделайте отсоединенный рекордсет с полем типа varchar(10)
заполните его и укажите гриду в качестве источника
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36365242
DаtаGrid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас опять завал,
буду пробовать позже. Заранее всех благодарю.
...
Рейтинг: 0 / 0
Почему отображается только часть поля, длина которого 10 знаков?
    #36376915
DаtаGrid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Убрал из проекта Me.Adodc1 совсем, как будто его и не было. Сохранил проект.
Удалил из формы DataGrid1. Опять сохранил проект.
Поместил DataGrid1 на форму заново. (уж не знаю к чему придраться)

Вставил вот эти строки
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Dim conn As ADODB.Connection:     Set conn = New ADODB.Connection
Dim rst1 As ADODB.Recordset:      Set rst1 = New ADODB.Recordset
 
conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.CursorLocation = adUseClient
conn.Open mdb, "Admin" ', password
rst1.Open strSQL, conn, adOpenStatic, adLockBatchOptimistic
строка strSQL простенькая, пробовал без строки эскуэль, т.е. на прямую брать данные из таблицы. Эффект тот же.

дальше пишу так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    Me.DataGrid1.ClearFields
    Me.DataGrid1.Refresh
    
    Me.DataGrid1.Visible = True
    Me.DataGrid1.AllowUpdate = False
    Me.DataGrid1.AllowRowSizing = False

    Me.DataGrid1.RowHeight =  280 
    Me.DataGrid1.Caption = "телефоны"
    Me.DataGrid1.HeadLines =  2 
    
    Set DataGrid1.DataSource = rst1

    Me.DataGrid1.Columns( 0 ).Caption = "телефон"
    Me.DataGrid1.Columns( 0 ).NumberFormat = "(000) 000 00 00"
    Me.DataGrid1.Columns( 0 ).DataField = "telefon"
    Me.DataGrid1.Columns( 0 ).Locked = True

и т.д.


таблицу создана таким образом, правда с помощью DAO, в другом модуле
Код: plaintext
1.
2.
3.
4.
    Set tb = DB.CreateTableDef("tmpTelefon")
    Set FD = tb.CreateField("telefon", dbText,  10 ):     FD.AllowZeroLength = True:  tb.Fields.Append FD
и т.д.
    DB.TableDefs.Append tb

Благодарю за любые идеи.
Цель такая.
Надо сохранять форматирование как при просмотре так и при редактировании.
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему отображается только часть поля, длина которого 10 знаков?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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