vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
code funktioniert nicht!!! 
Autor: eclere
Datum: 16.02.02 00:15

hallo,
ich hoff jemand kann mir helfen. ich habe hier eine tabelle. die rechnen soll, aber es nicht tut, obwohl die funktion "ausrechnen" bei einer tabelle ohne schnickschnack prima funktioniert. erst seitdem ich die textbox drüber gelegt habe, um eingaben machen zu können geht es nicht mehr.
kann mir jemand sagen warum, und wie ich abhilfe schaffen kann?

gruss eclere


hier der code:



Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Const CB_SHOWDROPDOWN = &H14F
Private Sub Command1_Click()
Call Ausrechnen
End Sub

Private Sub Form_Load()
Me.Left = 1200
Me.Top = 5700
Combo1.AddItem "Stück"
Combo1.AddItem "m²"
Combo1.AddItem "m"

Dim strCol As String

strCol = "Artikel|Menge|Einheit|Einzelpreis|Gesamtpreis"
MSFlexGrid1.FormatString = strCol

MSFlexGrid1.ColWidth(0) = 5700
MSFlexGrid1.ColWidth(1) = 600
MSFlexGrid1.ColWidth(2) = 800
MSFlexGrid1.ColWidth(3) = 1000

End Sub

Private Sub MSFlexGrid1_Click()
If MSFlexGrid1.Col <> 2 Then
Call SizeText
Text1.Visible = True
Text1.SetFocus
Else
Call SizeCombo
Combo1.Visible = True
Combo1.SetFocus
End If
End Sub
Private Sub Combo1_GotFocus()
SendMessage Combo1.hwnd, CB_SHOWDROPDOWN, True, 0
End Sub
Private Sub MSFlexGrid1_GotFocus()
MSFlexGrid1_RowColChange
End Sub

Private Sub MSFlexGrid1_LeaveCell()
If MSFlexGrid1.Col <> 2 Then
MSFlexGrid1.Text = Text1.Text
Else
MSFlexGrid1.Text = Combo1.Text
End If
End Sub

Private Sub MSFlexGrid1_RowColChange()
Static OldRow%, OldCol%, Change As Boolean

If Change Then Exit Sub
Change = True

With MSFlexGrid1
If .Col <> OldCol Or .Row <> OldRow Then
OldRow = .Row
OldCol = .Col

If .Col <> 3 Then
Call SizeText
Text1.Visible = True
Text1.SetFocus
Else
Call SizeCombo
Combo1.Visible = True
Combo1.SetFocus
End If
End If
End With
Change = False



End Sub

Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
With MSFlexGrid1
Select Case KeyCode

Case vbKeyRight
If .Col + 2 > .Cols And .Row + 1 < .Rows Then
Col = 1
Row = .Row + 1
ElseIf .Col + 1 < .Cols And .Row < .Rows Then
Col = .Col + 1
End If

Case vbKeyUp
If .Row - 1 > 0 Then .Row = .Row - 1

Case vbKeyDown, vbKeyReturn
If .Row + 1 < .Rows Then .Row = .Row + 1

Case vbKeyLeft
If .Col - 1 = 0 And .Row - 1 <> 0 Then
Col = .Cols - 1
Row = .Row - 1
ElseIf .Col - 1 <> 0 Then
Col = .Col - 1
End If
End Select
End With
MSFlexGrid1_RowColChange
End Sub


Private Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)
With MSFlexGrid1
Select Case KeyCode

Case vbKeyRight
If .Col + 2 > .Cols And .Row + 1 < .Rows Then
Col = 1
Row = .Row + 1
ElseIf .Col + 1 < .Cols And .Row < .Rows Then
Col = .Col + 1
End If

Case vbKeyUp
If .Row - 1 > 0 Then .Row = .Row - 1

Case vbKeyDown, vbKeyReturn
If .Row + 1 < .Rows Then .Row = .Row + 1

Case vbKeyLeft
If .Col - 1 = 0 And .Row - 1 <> 0 Then
Col = .Cols - 1
Row = .Row - 1
ElseIf .Col - 1 <> 0 Then
Col = .Col - 1
End If
End Select
End With
MSFlexGrid1_RowColChange
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then KeyAscii = 0
If KeyAscii = vbKeyTab Then
Call Text1_KeyDown(vbKeyRight, 0)
KeyAscii = 0
End If
End Sub

Private Sub Combo1_KeyPress(KeyAscii As Integer)
If KeyAscii = vbKeyReturn Then KeyAscii = 0
If KeyAscii = vbKeyTab Then
Call Combo1_KeyDown(vbKeyRight, 0)
KeyAscii = 0
End If
End Sub


Private Sub Text1_LostFocus()
Text1.Visible = False
Call MSFlexGrid1_RowColChange
End Sub

Private Sub Combo1_LostFocus()
Combo1.Visible = False
Call MSFlexGrid1_RowColChange
End Sub

Private Sub SizeText()
With MSFlexGrid1
Text1.Text = .Text
Text1.FontSize = .Font.Size
Text1.Height = .CellHeight

If .CellLeft + .CellWidth > .Width Then
Text1.Width = .Width - .CellLeft
Else
Text1.Width = .CellWidth
End If

Text1.Left = .CellLeft + .Left
Text1.Top = .CellTop + .Top
End With
End Sub

Private Sub SizeCombo()
With MSFlexGrid1
Combo1.Text = .Text
Combo1.FontSize = .Font.Size

If .CellLeft + .CellWidth > .Width Then
Combo1.Width = .Width - .CellLeft
Else
Combo1.Width = .CellWidth
End If

Combo1.Left = .CellLeft + .Left
Combo1.Top = .CellTop + .Top
End With

End Sub

Private Sub Ausrechnen()
Dim i As Long
Dim Euro As Currency
With Tabelle
For i = .FixedRows To .Rows - 1
Euro = Val(.TextMatrix(i, 1)) * Val(.TextMatrix(i, 3))
.TextMatrix(i, 4) = Format(Euro, "#,##0.00")
Next
End With
End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
code funktioniert nicht!!!100eclere16.02.02 00:15
Re: code funktioniert nicht!!!301unbekannt16.02.02 01:00
Re: code funktioniert nicht!!!52eclere16.02.02 01:08
Re: code funktioniert nicht!!!309unbekannt16.02.02 11:47
Re: code funktioniert nicht!!!50eclere16.02.02 12:02

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel