Enter Data on an MSFlexGrid

You can use MSFlexGrid for data entry without using additional ActiveX controls. For this, use the KeyPress and KeyUp events. To use the MSFlexGrid for data entry, add the grid?named FlxGrdDemo?to a form and copy this code:

 Private Sub FlxGrdDemo_KeyPress(KeyAscii As Integer)	Select Case KeyAscii		Case vbKeyReturn			' When the user hits the return key 			' this code'll move the next cell or row.			With FlxGrdDemo				If .Col + 1 <= .Cols - 1 Then					.Col = .Col + 1				ElseIf .Row + 1 <= .Rows - 1 Then					.Row = .Row + 1					.Col = 0				Else					.Row = 1					.Col = 0				End If			End With		Case vbKeyBack		' Delete the previous character when the 		' backspace key is used.			With FlxGrdDemo				If Trim(.Text) <> "" Then _					.Text = Mid(.Text, 1, Len(.Text) - 1)			End With		Case Is < 32		' Avoid unprintable characters.		Case Else 'Else print everything			With FlxGrdDemo				.Text = .Text & Chr(KeyAscii)			End With	End SelectEnd SubPrivate Sub FlxGrdDemo_KeyUp(KeyCode As _	Integer, Shift As Integer)	Select Case KeyCode		' Copy		Case vbKeyC And Shift = 2 ' Control + C			Clipboard.Clear			Clipboard.SetText FlxGrdDemo.Text			KeyCode = 0		' Paste		Case vbKeyV And Shift = 2 'Control + V			FlxGrdDemo.Text = Clipboard.GetText			KeyCode = 0		' Cut		Case vbKeyX And Shift = 2 'Control + X			Clipboard.Clear			Clipboard.SetText FlxGrdDemo.Text			FlxGrdDemo.Text = ""			KeyCode = 0		' Delete		Case vbKeyDelete			FlxGrdDemo.Text = ""	End SelectEnd Sub

You can set the FillStyle property to FlexFillRepeat, which makes the changes to all the selected cells.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: