小编Kuy*_*nda的帖子

LINQ在On子句中加入多个条件

我正在尝试在LINQ中实现一个查询,该查询在ON子句中使用具有多个条件的左外连接.

我将使用以下两个表Project(ProjectID,ProjectName)和Task(TaskID,ProjectID,TaskName,Completed)的示例.我想查看所有项目的完整列表及其各自的任务,但只查看已完成的任务.

我不能使用过滤器,Completed == true因为这将过滤掉任何没有完成任务的项目.相反,我想添加Completed == true到连接的ON子句,以便显示完整的项目列表,但只显示已完成的任务.没有完成任务的项目将显示一行,其中任务为空值.

这是查询的基础.

from t1 in Projects
join t2 in Tasks
on new { t1.ProjectID} equals new { t2.ProjectID } into j1
from j2 in j1.DefaultIfEmpty()
select new { t1.ProjectName, t2.TaskName }
Run Code Online (Sandbox Code Playgroud)

如何添加&& t2.Completed == trueon子句?

我似乎无法找到任何关于如何执行此操作的LINQ文档.

linq join

80
推荐指数
2
解决办法
11万
查看次数

我可以在T-SQL中循环表变量吗?

反正是否在T-SQL中循环表变量?

DECLARE @table1 TABLE ( col1 int )  
INSERT into @table1 SELECT col1 FROM table2
Run Code Online (Sandbox Code Playgroud)

我也使用游标,但游标似乎不如表变量灵活.

DECLARE cursor1 CURSOR  
    FOR SELECT col1 FROM table2  
OPEN cursor1  
FETCH NEXT FROM cursor1
Run Code Online (Sandbox Code Playgroud)

我希望能够以与游标相同的方式使用表变量.这样我就可以在过程的一个部分中对表变量执行一些查询,然后为表变量中的每一行执行一些代码.

任何帮助是极大的赞赏.

sql t-sql sql-server cursor table-variable

66
推荐指数
5
解决办法
13万
查看次数

具有危险状态类的Bootstrap模态?

Bootstrap 为面板提供了Contextual Alternatives,通过添加任何上下文状态类(如panel-warning或panel-danger),可以轻松地为面板设置样式.

bootstrap是否为Modals提供了类似的机制?或者是否有一种简单的方法将"面板警告"类应用于模态?

我尝试使用<div class="modal modal-warning">甚至<div class="modal panel-warning">,但都没有奏效.

谢谢!

twitter-bootstrap

30
推荐指数
3
解决办法
4万
查看次数

为什么VBA Me关键字无法在其自己的模块中访问私有过程?

我刚刚发现Me关键字即使在它们自己的类模型中也无法访问私有过程.

在Class1中使用以下代码:

Private Sub Message()
    Debug.Print "Some private procedure."
End Sub

Public Sub DoSomething()
    Me.Message
End Sub
Run Code Online (Sandbox Code Playgroud)

此代码实例化该类的实例:

Sub TestClass()
    Dim objClass As New Class1
    objClass.DoSomething
End Sub
Run Code Online (Sandbox Code Playgroud)

Me.Message 抛出编译错误"找不到方法或数据成员".

如果我改变Private Sub Message()Public的程序工作正常.我也可以从DoSomething过程中删除Me关键字,但我的印象是Me关键字背后的想法是确保Class1的多个实例被正确封装.

为什么VBA Me关键字在私有时无法在自己的模块中访问?省略Me关键字并在类中执行类似的操作是否安全?

Private Sub Message()
    Debug.Print "Some private procedure."
End Sub

Public Sub DoSomething()
    Message
End Sub
Run Code Online (Sandbox Code Playgroud)

谢谢!

更新:感谢有关正确语法的提示,我的代码正常运行.我仍然在寻找一个解释,为什么我可以在它自己的模块的实例中引用私有过程.我找不到任何好的文件.

vba encapsulation scope

15
推荐指数
1
解决办法
6648
查看次数

从数据透视表缓存重新创建源数据

我试图从使用数据透视表缓存的数据透视表中提取源数据并将其放入空白电子表格.我尝试了以下但它返回应用程序定义或对象定义的错误.

ThisWorkbook.Sheets.Add.Cells(1,1).CopyFromRecordset ThisWorkbook.PivotCaches(1).Recordset
Run Code Online (Sandbox Code Playgroud)

文档表明PivotCache.Recordset是一个ADO类型,所以这应该工作.我确实在引用中启用了ADO库.

有关如何实现这一目标的任何建议?

excel vba pivot-table

10
推荐指数
1
解决办法
2万
查看次数

将VBA中的ProgressBar UserForms显示为模态还是无模式更好?

将VBA中的ProgressBar UserForms显示为模态还是无模式更好?在VBA中制定进度指标的最佳做法是什么?

无模式UserForms需要使用Application.Interactive = False,而Modal UserForms本质上阻止与应用程序的任何交互,直到核心过程完成或被取消.

Application.Interactive = False但是,如果使用了,则Esc键会中断代码执行,因此在UserForm和调用过程中都需要使用Application.EnableCancelKey = xlErrorHandler和错误处理(Err.Number = 18).

资源密集型调用程序也能导致CommandButton_ClickUserForm_Activate在无模式用户窗体哑火事件.

通常,使用模态UserForms的进度指示器似乎更简单,因为正在执行的代码完全包含在UserForm模块中,并且不需要传递变量.

但是,对于进度指示器使用模态UserForms的问题是,每个需要进度指示器的过程都需要单独的UserForm模块,因为调用过程必须在UserForm_Activate过程中.

因此,虽然在无模式UserForm中可以有一个可重用的进度指示器,但它比在多个模态UserForms中执行代码的可靠性低.

哪种方式更好?

谢谢!

vba modal-dialog modeless userform progress-indicator

8
推荐指数
1
解决办法
5622
查看次数

为什么将UserForm显示为模态停止代码执行?

以下VBA代码停在Me.Show.从我的测试来看,似乎Me.Show停止所有代码执行,即使代码在UserForm中.

这部分在UserForm之外:

Public Sub TestProgress()  
    Dim objProgress As New UserForm1
    objProgress.ShowProgress
    Unload objProgress
End Sub
Run Code Online (Sandbox Code Playgroud)

这部分在UserForm中:

Private Sub ShowProgress()
    Me.Show vbModal
    Dim intSecond As Integer
    For intSecond = 1 To 5
        Application.Wait Now + TimeValue("0:00:01")
        Me.ProgressBar1.Value = intSecond / 5 * 100
    Next intSecond
    Me.Hide
End Sub
Run Code Online (Sandbox Code Playgroud)

Me.Show显示UserForm后代码停止.没有错误,它只是停止执行代码.似乎在VBA中的模式UserForm中执行代码的唯一方法是将它包含在UserForm_Activate过程中,如下所示:

这部分在UserForm之外:

Public Sub TestProgress()  
    Dim objProgress As New UserForm1
    Load objProgress
    Unload objProgress
End Sub
Run Code Online (Sandbox Code Playgroud)

这部分在UserForm中:

Private Sub UserForm_Initialize()
    Me.Show vbModal
End Sub …
Run Code Online (Sandbox Code Playgroud)

vba modal-dialog userform

7
推荐指数
3
解决办法
8万
查看次数

是否有逗号分隔的离散值列表的正则表达式?

我使用以下正则表达式来验证逗号分隔的值列表.

^Dog|Cat|Bird|Mouse(, (Dog|Cat|Bird|Mouse))*$
Run Code Online (Sandbox Code Playgroud)

这些值也列在Excel单元格验证的下拉列表中,因此用户可以从下拉列表中选择单个值,或键入以逗号分隔的多个值.

正则表达式可以很好地防止用户输入除批准值之外的任何内容,但它不会阻止用户输入重复项.例如,用户可以输入"Dog"和"Dog,Cat",但用户也可以输入"Dog,Dog".

有没有办法使用类似的单个正则表达式来防止重复?换句话说,我需要能够强制执行批准的逗号分隔值的离散列表.

谢谢!

regex excel

6
推荐指数
1
解决办法
2万
查看次数

如何在MySQL中建立一个连续的组?

如何在MySQL中返回实际上是"连续"GROUP BY的内容.换句话说,GROUP BY尊重记录集的顺序?

例如,SELECT MIN(col1), col2, COUNT(*) FROM table GROUP BY col2 ORDER BY col1从下表中col1是唯一的有序索引:

1    a
2    a
3    b
4    b
5    a
6    a

收益:

1    a    4
3    b    2

但我需要返回以下内容:

1    a    2
3    b    2
5    a    2

mysql sql group-by

6
推荐指数
1
解决办法
1792
查看次数

这是RegEx用于匹配Excel公式中的任何单元格引用吗?

我一直在尝试创建一个正则表达式模式,匹配任何Excel公式中的任何引用,包括绝对,相对和外部引用.我需要返回整个引用,包括工作表和工作簿名称.

我无法找到有关Excel A1表示法的详尽文档,但经过大量测试后我确定了以下内容:

  • 公式前面带有等号"="
  • 公式中的字符串用双引号括起来,在查找实际引​​用之前需要删除,否则=A1&"A1"会破坏正则表达式
  • 工作表名称最长可达31个字符,不包括\ /?*[]:
  • 外部引用中的工作表名称必须以bang成功 =Sheet1!A1
  • 外部引用中的工作簿名称必须括在方括号中 =[Book1.xlsx]Sheet1!A1
  • 如果引用是封闭工作簿中的范围,则Excel添加的工作簿路径始终用单引号括起来,并且括在工作簿名称括号的左侧 'C:\[Book1.xlsx]Sheet1'!A1
  • 某些字符(例如,不间断的空格)导致Excel将工作簿和工作表名称用单引号括在外部引用中,但我不知道具体哪些字符 ='[Book 1.xlsx]Sheet 1'!A1
  • 即使启用了R1C1表示法,Range.Formula仍会以A1表示法返回引用.Range.FormulaR1C1返回R1C1表示法中的引用.
  • 3D参考样式允许在一个工作簿上使用一系列工作表名称 =SUM([Book5]Sheet1:Sheet3!A1)
  • 命名范围可以在公式中指定:
    • 名称的第一个字符必须是字母,下划线字符(_)或反斜杠(\).名称中的剩余字符可以是字母,数字,句点和下划线字符.
    • 您不能将大写和小写字符"C","c","R"或"r"用作已定义的名称,因为它们都用作选择当前所选单元格的行或列的简写.在名称或转到文本框中输入它们.
    • 名称不能与单元格引用相同,例如Z $ 100或R1C1.
    • 空格不允许作为名称的一部分.
    • 名称最长可达255个字符.
    • 名称可以包含大写和小写字母.Excel不区分名称中的大写和小写字符.

以下是我提出的用于测试的VBA程序.我更新了代码以处理名称:

Sub ReturnFormulaReferences()

    Dim objRegExp As New VBScript_RegExp_55.RegExp
    Dim objCell As Range
    Dim objStringMatches As Object
    Dim objReferenceMatches As Object
    Dim objMatch As Object
    Dim intReferenceCount As Integer
    Dim intIndex As Integer
    Dim booIsReference As Boolean
    Dim objName As Name
    Dim booNameFound As Boolean …
Run Code Online (Sandbox Code Playgroud)

regex excel vba excel-formula

5
推荐指数
1
解决办法
6862
查看次数