問題
1:由于Access表里字段多, 
如全部顯示在DataGrid上, 
不方便操作; 
怎樣讓DataGrid顯示Access表里某幾個字段? ==>
Adodc2.CommandType = adCmdText
            Adodc2.RecordSource = "select SN,Name,Skuno,Barcode,InputDateTime,InStorageUser,Flag from Info order by InputDateTime"
            Adodc2.Refresh
            Set DataGrid1.DataSource = Adodc2
            If Not Adodc2.Recordset.EOF Then                                '2009.10.5增加判斷語句
               Me.Adodc2.Recordset.MoveLast                                '指向Last
            End If問題2:設置DataGrid列寬度; ==>
 DataGrid1.Columns(0).Width = 800
            DataGrid1.Columns(0).Caption = " 序列號"
            DataGrid1.Columns(0).Alignment = dbgCenter
            
            DataGrid1.Columns(1).Width = 1400
            DataGrid1.Columns(1).Caption = "    機種"
            DataGrid1.Columns(1).Alignment = dbgCenter
            
            DataGrid1.Columns(2).Width = 1300
            DataGrid1.Columns(2).Caption = "    料號"
            DataGrid1.Columns(2).Alignment = dbgCenter
            
            DataGrid1.Columns(3).Width = 1700
            DataGrid1.Columns(3).Caption = "      條碼"
            DataGrid1.Columns(3).Alignment = dbgCenter
            
            DataGrid1.Columns(4).Width = 2000
            DataGrid1.Columns(4).Caption = "    入庫日期/時間"
            DataGrid1.Columns(4).Alignment = dbgCenter
            
            DataGrid1.Columns(5).Width = 1000
            DataGrid1.Columns(5).Caption = " 入庫用戶"
            DataGrid1.Columns(5).Alignment = dbgCenter
            
            DataGrid1.Columns(6).Width = 1000
            DataGrid1.Columns(6).Caption = "狀態標志位"
            DataGrid1.Columns(6).Alignment = dbgCenter

解决方案 »

  1.   

    以下代碼內控件DataGrid代碼怎么無法實現:
    設置DataGrid列寬度,名稱,etc參數呢?

    Private Sub DistributionSettingCom_Click()
        '功能說明:
        '1.分析工號"設定;
        '2."分析工號"沒有設定,光標將移致到"分析工號"Combox框;
        '3."產品數量"是否為數字;
        '4."產品數量"非數字,警告,光標將移致到"產品數量"文本框,并置"ProductCount"為空
        '5."產品數量"存放變量Count1里;
        
        '///////////////////////////////////////////////////////////////////////////////////////////////
        '"分析姓名"根據"分析工號"調用表AnalysisRepair得到
        Dim sql1 As String
        sql1 = "select *from AnalysisRepair where AnalysisID='" & AnalysisIDCombo.Text & "'"
        Set rs = TransactSQL(sql1)
        If iflag = 1 Then
            If rs.EOF = Flase Then
                AnalysisNameCombo.Text = rs.Fields("AnalysisName")                      '2009.10.4
            End If
        End If
        '///////////////////////////////////////////////////////////////////////////////////////////////
        If AnalysisIDCombo.Text = "分析工號" Then                                               '判斷"AnalysisIDCombo.Text"是否設置
            MsgBox "請設置分析工號!", 0, "警告!"
            AnalysisIDCombo.SetFocus
            Exit Sub
        Else
            If Not IsNumeric(ProductCount.Text) Then                                            '判斷"ProductCount.Text"是否為數字
                    MsgBox "你輸入的非數字,請重新輸入數字!", 0, "警告!"
                    ProductCount.SetFocus
                    ProductCount.Text = ""
                    Exit Sub
            Else
                If ProductCount.Text = 0 Then                                                       '判斷"ProductCount.Text"是否設置
                    MsgBox "請設置產品數量!", 0, "警告!"
                    ProductCount.SetFocus
                    ProductCount.Text = ""
                    Exit Sub
                Else
                    Count1 = ProductCount.Text
                     '/////////////////////////////////////////////////////////////////////////////////////////////////////////
                    '用"DataGrid1"顯示條件的數據
                    Dim sql3 As String
                    
                    If Len(Time) = 7 Then                                                              '當前時間長度等于7位,表示當前時間<10:00:00
                        If Left(Time, 1) * 3600 + Mid(Time, 3, 2) * 60 + Mid(Time, 6, 2) < 2800 Then    '如果當前時間小于8點,計算一天周期為前一天8點到該天該時間
                            sql3 = "select SN,Name,Skuno,Barcode,InputDateTime,InStorageUser,Flag from Info where AnalysisID='" & AnalysisIDCombo.Text & "' and (ShoppingInDateTime between # " & (Date - 1) + CDate(Format(80000, #12:00:00 AM#)) & "# and #" & Now & "#) order by ShoppingInDateTime"
                            GoTo DataGrid1
                        Else                                                                            '如果當前時間大于8點,計算一天周期為該天8點到該天該時間
                            sql3 = "select SN,Name,Skuno,Barcode,InputDateTime,InStorageUser,Flag from Info where AnalysisID='" & AnalysisIDCombo.Text & "' and (ShoppingInDateTime between # " & Date + CDate(Format(80000, #12:00:00 AM#)) & "# and #" & Now & "# ) order by ShoppingInDateTime"
                            GoTo DataGrid1
                        End If
                    ElseIf Len(Time) = 8 Then                                                          ''當前時間長度等于8位,表示當前時間>=10:00:00,計算一天周期為該天8點到該天該時間
                        sql3 = "select SN,Name,Skuno,Barcode,InputDateTime,InStorageUser,Flag  from Info where AnalysisID='" & AnalysisIDCombo.Text & "'and (ShoppingInDateTime between # " & Date + CDate(Format(80000, #12:00:00 AM#)) & "# and #" & Now & "#) order by ShoppingInDateTime"
                        GoTo DataGrid1
                    End If
                    '標志位DataGrid1
                    '/////////////////////////////////////////////////////////////////////////////////////////////////////////
                     ' 更新"DataGrid1"數據
                    '2009.10.6修改后Code  修改原因:1.減少代碼運行邏輯;2.解決數據庫數據為空報錯的情況;3.數據指向最后;
    DataGrid1:      Adodc2.CommandType = adCmdText
                    Adodc2.RecordSource = sql3
                    Adodc2.Refresh
                    Set DataGrid1.DataSource = Adodc2
                    If Not Adodc2.Recordset.EOF Then                                '2009.10.5增加判斷語句
                        Me.Adodc2.Recordset.MoveLast                                '指向Last
                    End If
                                
                    DataGrid1.Columns(0).Width = 800
                    DataGrid1.Columns(0).Caption = " 序列號"
                    DataGrid1.Columns(0).Alignment = dbgCenter
                                
                    DataGrid1.Columns(1).Width = 1400
                    DataGrid1.Columns(1).Caption = "    機種"
                    DataGrid1.Columns(1).Alignment = dbgCenter
                                
                    DataGrid1.Columns(2).Width = 1300
                    DataGrid1.Columns(2).Caption = "    料號"
                    DataGrid1.Columns(2).Alignment = dbgCenter
                                
                    DataGrid1.Columns(3).Width = 1700
                    DataGrid1.Columns(3).Caption = "      條碼"
                    DataGrid1.Columns(3).Alignment = dbgCenter
                                
                    DataGrid1.Columns(4).Width = 2000
                    DataGrid1.Columns(4).Caption = "    入庫日期/時間"
                    DataGrid1.Columns(4).Alignment = dbgCenter
                                
                    DataGrid1.Columns(5).Width = 1000
                    DataGrid1.Columns(5).Caption = " 入庫用戶"
                    DataGrid1.Columns(5).Alignment = dbgCenter
                                
                    DataGrid1.Columns(6).Width = 1000
                    DataGrid1.Columns(6).Caption = "狀態標志位"
                    DataGrid1.Columns(6).Alignment = dbgCenter
                                                
                    '/////////////////////////////////////////////////////////////////////////////////////////////////////////
                    
                    '/////////////////////////////////////////////////////////////////////////////////////////////////////////
                    '計算"單班投入數"
                    Dim sql6 As String
                    If Len(Time) = 7 Then                                                              '當前時間長度等于7位,表示當前時間<10:00:00
                        If Left(Time, 1) * 3600 + Mid(Time, 3, 2) * 60 + Mid(Time, 6, 2) < 2800 Then    '如果當前時間小于8點,計算一天周期為前一天8點到該天該時間
                            sql6 = "select *from Info where AnalysisID='" & AnalysisIDCombo.Text & "' and (ShoppingInDateTime between # " & (Date - 1) + CDate(Format(80000, #12:00:00 AM#)) & "# and #" & Now & "#) "
                            GoTo AnalysisEveryDayInCount1
                        Else                                                                            '如果當前時間大于8點,計算一天周期為該天8點到該天該時間
                            sql6 = "select *from Info where AnalysisID='" & AnalysisIDCombo.Text & "' and (ShoppingInDateTime between # " & Date + CDate(Format(80000, #12:00:00 AM#)) & "# and #" & Now & "# )"
                            GoTo AnalysisEveryDayInCount1
                        End If
                    ElseIf Len(Time) = 8 Then                                                          ''當前時間長度等于8位,表示當前時間>=10:00:00,計算一天周期為該天8點到該天該時間
                            sql6 = "select *from Info where AnalysisID='" & AnalysisIDCombo.Text & "' and (ShoppingInDateTime between # " & Date + CDate(Format(80000, #12:00:00 AM#)) & "# and #" & Now & "#) "
                            GoTo AnalysisEveryDayInCount1
                    End If
                                    '標志位rs
    AnalysisEveryDayInCount1:         Set rs = TransactSQL(sql6)
                                     AnalysisEveryDayInCount = rs.RecordCount
                                     AnalysisEveryDayInCount.Text = AnalysisEveryDayInCount
                                     Me.AnalysisEveryDayInCount.Refresh
                                     Me.Adodc2.Refresh
                        '/////////////////////////////////////////////////////////////////////////////////////////////////////////
                        BarCode.SetFocus                                                                '光標移致到"Barcode"
                        Exit Sub
                End If
            End If
        End If
    End Sub
      

  2.   

    如果你把这段话删掉是什么效果?                '計算"單班投入數"
                    Dim sql6 As String
                    If Len(Time) = 7 Then                                                              '當前時間長度等于7位,表示當前時間<10:00:00
                        If Left(Time, 1) * 3600 + Mid(Time, 3, 2) * 60 + Mid(Time, 6, 2) < 2800 Then    '如果當前時間小于8點,計算一天周期為前一天8點到該天該時間
                            sql6 = "select *from Info where AnalysisID='" & AnalysisIDCombo.Text & "' and (ShoppingInDateTime between # " & (Date - 1) + CDate(Format(80000, #12:00:00 AM#)) & "# and #" & Now & "#) "
                            GoTo AnalysisEveryDayInCount1
                        Else                                                                            '如果當前時間大于8點,計算一天周期為該天8點到該天該時間
                            sql6 = "select *from Info where AnalysisID='" & AnalysisIDCombo.Text & "' and (ShoppingInDateTime between # " & Date + CDate(Format(80000, #12:00:00 AM#)) & "# and #" & Now & "# )"
                            GoTo AnalysisEveryDayInCount1
                        End If
                    ElseIf Len(Time) = 8 Then                                                          ''當前時間長度等于8位,表示當前時間>=10:00:00,計算一天周期為該天8點到該天該時間
                            sql6 = "select *from Info where AnalysisID='" & AnalysisIDCombo.Text & "' and (ShoppingInDateTime between # " & Date + CDate(Format(80000, #12:00:00 AM#)) & "# and #" & Now & "#) "
                            GoTo AnalysisEveryDayInCount1
                    End If
                                    '標志位rs
    AnalysisEveryDayInCount1:         Set rs = TransactSQL(sql6)
                                     AnalysisEveryDayInCount = rs.RecordCount
                                     AnalysisEveryDayInCount.Text = AnalysisEveryDayInCount
                                     Me.AnalysisEveryDayInCount.Refresh
                                     Me.Adodc2.Refresh
                        '/////////////////////////////////////////////////////////////////////////////////////////////////////////
                        BarCode.SetFocus                                                                '光標移致到"Barcode"
                        Exit Sub
      

  3.   

    1.按順序顯示表內所有字段;
    2.DataGrid列表寬,名稱tec按表內參數顯示;
      

  4.   

    報告BZ;
    確定;
    而且有用F9設置段點,
    而且程序有跑;
    Columns(0).Width = 800
                    DataGrid1.Columns(0).Caption = " 序列號"
                    DataGrid1.Columns(0).Alignment = dbgCenter
                                
                    DataGrid1.Columns(1).Width = 1400
                    DataGrid1.Columns(1).Caption = "    機種"
                    DataGrid1.Columns(1).Alignment = dbgCenter
                                
                    DataGrid1.Columns(2).Width = 1300
                    DataGrid1.Columns(2).Caption = "    料號"
                    DataGrid1.Columns(2).Alignment = dbgCenter
                                
                    DataGrid1.Columns(3).Width = 1700
                    DataGrid1.Columns(3).Caption = "      條碼"
                    DataGrid1.Columns(3).Alignment = dbgCenter
                                
                    DataGrid1.Columns(4).Width = 2000
                    DataGrid1.Columns(4).Caption = "    入庫日期/時間"
                    DataGrid1.Columns(4).Alignment = dbgCenter
                                
                    DataGrid1.Columns(5).Width = 1000
                    DataGrid1.Columns(5).Caption = " 入庫用戶"
                    DataGrid1.Columns(5).Alignment = dbgCenter
                                
                    DataGrid1.Columns(6).Width = 1000
                    DataGrid1.Columns(6).Caption = "狀態標志位"
                    DataGrid1.Columns(6).Alignment = dbgCenter要不我把整個程式傳你看看;