спасибо за ваши ответы.Это форма с +/- 780 несвязанными текстовыми полями, которые должны быть заполнены данными из таблицы.Я создаю программу для небольшого кемпинга, и эта форма является своего рода планированием доступных мест в день.Таким образом, у них есть 30 мест, и они хотят видеть 2 недели, так много полей, потому что они также хотят разделить день утром и днем.Я знаю, что, возможно, это не правильный путь к программе, но мои знания в данный момент невелики: - (
Так что, если у кого-то есть хорошее предложение, я буду очень признателен за это.
Полный код приведен ниже, это цикл в цикле.
Private Sub Form_Load()
For p = 1 To 30
k2 = 1
k3 = 1
r1 = r1 - 49
g = g + 52
b = b - 127
If r1 < 0 Then r1 = 255
If g < 0 Then g = 200
If b < 0 Then b = 160
If r1 > 255 Then r1 = 31
If g > 255 Then g = 100
If b > 255 Then b = 56
For k2 = 1 To 26
k1 = "pl" & p & "_" & k2
k4 = "calday" & k3
If r1 < 0 Then r1 = 255
If g < 0 Then g = 200
If b < 0 Then b = 160
If r1 > 255 Then r1 = 31
If g > 255 Then g = 100
If b > 255 Then b = 56
If k2 Mod 2 = 1 Then
Dim strCriteria As String, strQuery As String
strCriteria = _
BuildCriteria("[Plek#]", dbLong, p) & " And " & _
BuildCriteria("[datum]", dbDate, Me(k4)) & " And " & _
BuildCriteria("[bezet_ochtend]", dbText, """bezet""")
strQuery = "SELECT [KLant] FROM [Planning_tbl02] WHERE " & strCriteria
With CurrentDb.OpenRecordset(strQuery, dbOpenForwardOnly)
If Not .EOF Then
Me(k1) = ![klant]
Else
Me(k1) = Null
End If
.Close
End With
If k2 = 1 Then
If Me(k1).Value <> "" Then
Me(k1).BackColor = RGB(r1, g, b)
End If
End If
If k2 - 1 > 0 Then
If Me(k1).Value <> "" And IsNull(Me("pl" & p & "_" & (k2 - 1)).Value) Then
Me(k1).BackColor = RGB(r1, g, b)
End If
End If
If k2 - 1 > 0 Then
If Me(k1).Value <> "" And Me("pl" & p & "_" & k2) = Me("pl" & p & "_" & (k2 - 1))Then
Me(k1).BackColor = RGB(r1, g, b)
End If
End If
If k2 - 1 > 0 Then
If Me("pl" & p & "_" & k2) <> Me("pl" & p & "_" & (k2 - 1)) Then
r1 = r1 - 49
g = g + 52
b = b - 127
Me(k1).BackColor = RGB(r1, g, b)
End If
End If
End If
If k2 Mod 2 <> 1 Then
strCriteria = _
BuildCriteria("[Plek#]", dbLong, p) & " And " & _
BuildCriteria("[datum]", dbDate, Me(k4)) & " And " & _
BuildCriteria("[bezet_ochtend]", dbText, """bezet""")
strQuery = "SELECT [KLant] FROM [Planning_tbl02] WHERE " & strCriteria
With CurrentDb.OpenRecordset(strQuery, dbOpenForwardOnly)
If Not .EOF Then
Me(k1) = ![klant]
Else
Me(k1) = Null
End If
.Close
End With
If Me(k1).Value <> "" And IsNull(Me("pl" & p & "_" & (k2 - 1)).Value) Then
Me(k1).BackColor = RGB(r1, g, b)
End If
If Me(k1).Value <> "" And Me("pl" & p & "_" & k2) = Me("pl" & p & "_" & (k2 - 1))Then
Me(k1).BackColor = RGB(r1, g, b)
End If
If k2 - 1 > 0 Then
If Me(k1).Value <> "" And Me("pl" & p & "_" & k2) <> Me("pl" & p & "_" & (k2 - 1)) Then
Me(k1).BackColor = RGB(r1, g, b)
End If
End If
If k2 - 1 > 0 Then
If Me("pl" & p & "_" & k2) <> Me("pl" & p & "_" & (k2 - 1)) Then
r1 = r1 - 49
g = g + 52
b = b - 127
If r1 < 0 Then r1 = 255
If g < 0 Then g = 200
If b < 0 Then b = 160
Me(k1).BackColor = RGB(r1, g, b)
End If
End If
End If
If k2 Mod 2 <> 1 Then
k3 = k3 + 1
End If
Next
Next
End Sub